javascript不僅僅能夠實現繼承,有時候我們僅僅是需要類中的一部分屬性或者方法的時候,我們可以考慮彙總來實現
直接上例子,這裡僅僅是提供一個思路,例子感覺並不能夠說的特別詳盡,針對彙總的更深理解,大家可以百度一下,也可以在評論中我們一起討論
對象的實現方法:
/** * 摻元類 * 有的時候我們不需要嚴格的繼承,我們真正需要的是一個類中的一些函數 */(function(){ //我們準備將要被彙總的函數 var JSON = { toJSONString : function(){ var output = []; for(key in this){ output.push(key + "-->" + this[key]); } return output; } } /** * 彙總函式 */ function mixin(receivingClass, givingClass){ for(methodName in givingClass){ if(!receivingClass[methodName]){ receivingClass[methodName] = givingClass[methodName]; } } } var o = {name:"jim",age:16}; mixin(o,JSON); document.write(o.toJSONString().join(","));
類中實現
JSON.prototype = { //如果說不用prototypetoJSONString :function(){var outPut = [];for(key in this){outPut.push(key+" --> "+this[key])}return outPut;}}//製作彙總函式function mixin(receivingClass,givingClass){for(methodName in givingClass.prototype){//本類中沒有這個函數的情況下我在彙總,否則跳過if(!receivingClass.prototype[methodName]){receivingClass.prototype[methodName] = givingClass.prototype[methodName]}}}//var o = {name:"a",age:27}var o = function(){this.name = "a";this.age = 17}mixin(o,JSON);var a = new o();document.write(a.toJSONString().join(","))