1
我想創建一個強大的方式來定義類的「即時」,但我害怕在整個過程中添加不必要的開銷。功能來創建類
這裏是我創建代碼:
function Class(cons,proto) {
var keys = Object.keys(cons);
function _class() {
var i = keys.length;
while(i--) {
this[ keys[i] ] = arguments[i] || cons[keys[i]];
}
}
if(proto) {
var f;
for (f in proto) {
_class.prototype[f] = proto[ f ];
}
}
return _class
}
這裏是我要如何使用它
var car = Class({
"name": "A car",
"power": 900
},
{
"honk": function() { alert("honk!") }
});
var bmw = new car("BMW", 500);
bmw.honk(); // -> honk!
console.log(bmw.name, bmw.power); // -> BMW 500
var generic = new car();
generic.honk = function() { alert("custom honk") };
generic.honk(); // -> custom honk!
alert(bmw.honk === car.prototype.honk); // -> true
alert(generic.honk === car.prototype.honk); // -> false
console.log(generic.name, generic.power); // -> A car 900
我做任何不必要的?你有什麼改進建議嗎? 請發表您的意見
在javascript中,沒有任何類,所以從某種意義上說它總是在飛行中。人們提出繼承的方式有很多種,而這一切都歸結爲選擇你需要的任務。它真的取決於什麼1.簡化代碼的其餘部分2.高效運行。基本上,這取決於代碼的其餘部分 – Jodes 2013-03-12 12:00:31