UNPKG

fus

Version:
105 lines (83 loc) 2.22 kB
/** * https://github.com/JWhile/Fus * * Fus */ var fus = (function(){ // function equals(Object obj1, Object obj2):boolean var equal = function(obj1, obj2) { if(typeof obj1 === 'object' && typeof obj2 === 'object') { if(Object.keys(obj1).length === Object.keys(obj2).length) { for(var key in obj1) { if(obj1.hasOwnProperty(key) && (!obj2.hasOwnProperty(key) || !equal(obj1[key], obj2[key]))) { return false; } } return true; } return false; } return (obj1 === obj2); }; // function clone(Object obj, boolean recursive = false):Object var clone = function(obj, recursive) { if(typeof obj === 'object' && obj != null) { var newObj = new obj.constructor(); for(var key in obj) { if(obj.hasOwnProperty(key)) { newObj[key] = recursive? clone(obj[key], true) : obj[key]; } } return newObj; } return null; }; // function extend(class klass, class parent):void var extend = function(klass, parent) { for(var key in parent.prototype) { if(!klass.prototype.hasOwnProperty(key) && parent.prototype.hasOwnProperty(key)) { klass.prototype[key] = parent.prototype[key]; } } klass.prototype.constructor = klass; klass.super = function(self) { parent.apply(self, arguments.slice(1)); }; klass._super = parent; klass.__super = null; klass.prototype.super = function() { if(this.constructor.__super === null) { this.constructor.__super = this.constructor._super; } var sup = this.constructor.__super; this.constructor.__super = sup._super || null; sup.apply(this, arguments); return this; }; }; return { 'equal': equal, 'clone': clone, 'extend': extend } })(); // Exports (Nodejs) if(typeof module !== 'undefined' && module.exports) { module.exports = fus; }