a = function() {}
a.prototype.b = 10
console.log(a.b)
我对原型继承的理解是,如果属性是在对象本身中定义的,那么该prop的值就会被定义。
如果未在对象中定义属性,则它将查找原型链,我理解为原型链,a.prototype
并返回值。
在上述情况下,它打印undefined
而我期望10
。
你需要:
console.log(new a().b);
a
是函数(也是对象)的self,而原型链是针对由构造函数初始化的实例的a
。
另一个例子:
a = function() {};
Function.prototype.b = 10;
console.log(a.b); // this time you will get 10
a
是一个也是一个对象的函数,您可以向添加一个属性Function.prototype
,然后为a
作品原型链。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句