从这里取得的例子:http://sporto.github.io/blog/2013/02/22/a-plain-english-guide-to-javascript-prototypes/
我在这里也问了一个类似的问题:Javascript: Added function does not appear on parent object。
创建一个对象
>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 对象上不可见,即使它可以将它传达给孩子?
答案 0 :(得分:2)
这是因为Person只是一个函数(对象)/构造函数:
Person =
function Person(name) {
this.name = name;
}
要获取亲切的实物,请参阅原型
Person.prototype =
Person {kind: "person"}
我不是这方面的专家,但是如果你想创建一个新的构造函数,你应该覆盖这个函数。
你可以看到函数(下面)作为设置实例特定变量的构造函数
function Person(name) {
this.name = name;
}
Person.prototype.kind = 'person'
就像是类
答案 1 :(得分:1)
您正在查看Person
构造函数。
要查看Person
定义的属性,您可以使用Object.getOwnPropertyNames(Person.prototype)
这将显示kind
属性。