日期:2014-05-16 浏览次数:20403 次
<!DOCTYPE HTML> <html> <head> <script type="text/javascript"> // 克隆对象 function clone(object){ function F(){}; F.prototype = object; return new F; }; function Mixin(){} Mixin.prototype = { serialize : function(){ var output = []; for(var key in this){ if(key != 'serialize'){ output.push(key + ':' + this[key]); } } return output.join(','); } }; /** * 使receivingClass类继承givingClass类 * 若需指定继承方法,直接加在参数后面 * receivingClass 受类 * givingClass 访予类 */ function augment(receivingClass, givingClass){ if(arguments[2]){ for(var i=2,len = arguments.length; i<len; i++){ receivingClass.prototype[arguments[i]] = givingClass.prototype[arguments[i]]; } } else { for(var methodName in givingClass.prototype){ if(!receivingClass.prototype[methodName]){ receivingClass.prototype[methodName] = givingClass.prototype[methodName]; } } } } // 例子 function Author(){} Author.prototype = { 'nationality' : 'China', 'name' : 'Jack', 'gender' : 'male', 'mail' : 'topcss@gamil.com' } // 让Author对象继承Mixin对象的serialize方法 augment(Author, Mixin, 'serialize'); console.info(new Author().serialize()); </script> </head> </html>?