Javascript:原型属性在父级上不可见
Javascript: prototype attribute not visible on parent
此处的示例:http://sporto.github.io/blog/2013/02/22/a-plain-english-guide-to-javascript-prototypes/
我在这里也问了一个类似的问题:Javascript:添加的函数不会出现在父对象上。
创建对象
>function Person(name) {
this.name = name;
}
添加一个属性作为原型。新的种类属性不会出现在对象上。
>Person.prototype.kind = 'person'
>Person
<function Person(name) {
this.name = name;
}
现在使用父对象作为原型创建一个新对象。添加的属性可见。
var zack = new Person('Zack');
Person {name: "Zack", kind: "person"}
为什么添加的kind属性在父对象Person上不可见,即使它可以将其传达给子对象?
这是因为Person只是一个函数(对象)/构造函数:
Person =
function Person(name) {
this.name = name;
}
要获得实物,请参考原型
Person.prototype =
Person {kind: "person"}
我不是这方面的专家,但如果你想创建一个新的构造函数,你应该覆盖函数。
您可以将函数(如下)视为设置实例特定变量的构造函数
function Person(name) {
this.name = name;
}
Person.prototype.kind = 'person'
类似于类上的静态变量
您正在查看Person
构造函数。
要查看Person
定义的属性,可以使用Object.getOwnPropertyNames(Person.prototype)
这将显示kind
属性。
相关文章:
- 附加到原型属性的Do函数没有闭包
- 日期原型属性
- JS构造函数的原型属性与其原型之间的区别
- 为什么函数对象的实例没有继承函数原型属性
- 为什么浏览器显示原型属性不同
- 为什么在Function.prototype上没有原型属性
- 函数的原型属性
- 原型继承和原型属性
- 在JavaScript中,函数的默认值是多少'的原型属性
- Chrome 不支持 Javascript 中的原型属性吗?
- 我应该在JavaScript中将什么连接到子原型属性
- 更新 JavaScript 中的原型属性
- 请解释有关 JavaScript 中的原型属性和函数构造函数的详细信息
- 为什么原型函数无法读取原型属性
- 与对象属性同名的原型属性
- 如何获取原型属性列表
- 构造函数中的方法与函数的原型属性之间的差异
- JavaScript 原型属性
- 函数对象__proto__和原型属性
- 未在自定义 OL3 控件的构造函数中定义的原型属性