我試圖創建一個簡單的可擴展的「類」 JavaScript,但在原型設置屬性時,它告訴原型是未定義:當試圖的Javascript的Object.prototype是不確定的
Class = {};
Class.extend = function(obj) {
var result = Object.create(this);
if (obj) {
for (var key in obj) {
if(typeof obj[key] == 'function'){
console.log(result);
result.protorype[key] = obj[key];
}else{
result[key] = obj[key];
};
};
result.prototype.constructor = result;
}
return result;
}
var a = Class.extend({
username: "matteo",
password: "nn te la dico",
getByUsername: function() {
return this.username;
}
});
console.log(a, Class.isPrototypeOf(a));
的問題發生設置屬性「getByUsername」通過界定「一」的時候,如果你看一下控制檯會報告:
Uncaught TypeError: Cannot set property 'getByUsername' of undefined
與「結果」記錄有屬性「用戶名」和「密碼」。
P.S它將在IE> 8
這裏只工作是一個小提琴http://jsfiddle.net/paglia_s/z62eA/
'result.protorype [關鍵] = OBJ [關鍵];'或'result.prototype [key] = obj [key];'? – Matt
@Matte原型 –
@HackedByChinese沒有它已經手工建造 –