[英]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.