原型继承 - 访问原型属性中的道具
Prototype inheritance - access props inside prototype property
a = function() {}
a.prototype.b = 10
console.log(a.b)
我对原型继承的理解是,如果属性是在对象本身中定义的,那么该 prop 的值就是定义的。
如果未在对象中定义该属性,则它会查找原型链,我将其理解为在a.prototype
下查找并返回值。
在上述情况下,它打印undefined
而我希望10
.
var a = function() {};
a
是一个函数
a.prototype.b = 10;
a
的所有实例都以属性值 .b
10 开头。
console.log(a.b) //undefined
a
不是 a 的实例,因此它只是没有属性 b 的 function(){}
,因此日志未定义。
var A = new a();
console.log(A.b);//10;
现在我们有一个 a 的实例,结果记录了 10。
你需要:
console.log(new a().b);
a
是函数(也是一个对象(自,而原型链是构造函数初始化的实例a
。
再比如:
a = function() {};
Function.prototype.b = 10;
console.log(a.b); // this time you will get 10
a
是一个函数,也是一个对象,你添加一个属性到Function.prototype
,然后原型链a
工作。
只有类/对象/函数的实例继承自其prototype
属性。要访问函数原型中的属性,可以使用functionName.prototype.propertyname。或者,您可以内联创建新实例。
console.log(a.b);
应该是:
console.log(new a().b);
//OR
console.log(a.prototype.b);
有关原型 (mdn( 的更多信息。
相关文章:
- 附加到原型属性的Do函数没有闭包
- 日期原型属性
- JS构造函数的原型属性与其原型之间的区别
- 为什么函数对象的实例没有继承函数原型属性
- 为什么浏览器显示原型属性不同
- 为什么在Function.prototype上没有原型属性
- 函数的原型属性
- 原型继承和原型属性
- 在JavaScript中,函数的默认值是多少'的原型属性
- Chrome 不支持 Javascript 中的原型属性吗?
- 我应该在JavaScript中将什么连接到子原型属性
- 更新 JavaScript 中的原型属性
- 请解释有关 JavaScript 中的原型属性和函数构造函数的详细信息
- 为什么原型函数无法读取原型属性
- 与对象属性同名的原型属性
- 如何获取原型属性列表
- 构造函数中的方法与函数的原型属性之间的差异
- JavaScript 原型属性
- 函数对象__proto__和原型属性
- 未在自定义 OL3 控件的构造函数中定义的原型属性