[英]Prototype JavaScript -- function using constructor function
我有這個代碼:
function user(name) {
console.log(name);
}
user.prototype.test = function() {
return 2 + 2;
};
console.log(user.prototype.test());
var dany = new user("dany");
var david = new user("david");
console.log(dany.prototype.test());
控制台日志:
4
dany
david
Uncaught TypeError: Cannot call method 'test' of undefined
不應該將 test() 函數分配給 user() 函數(即對象構造函數)的所有實例嗎?
如果您碰巧對我應該閱讀的內容有很好的建議以更深入地了解原型,請繼續;)
編輯:
甚至使用:
Object.prototype.test = function() {
return 2 + 2;
};
我仍然在控制台中收到該錯誤。 我認為所有對象也會繼承該原型函數。
您可以將原型函數和值視為所有實例的默認值。 為什么你看到TypeError
是因為你試圖調用dany
的原型和方法test()
。
嘗試dany.test()
代替。
在閱讀它的工作原理時, 這將是您最好的選擇。
TLDR;
您收到TypeError
是因為user
函數的實例沒有自己的原型。 但是,您可以通過__proto__
快捷方式訪問實例原型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.