之间的区别:new ExampleConstructor 和 Object.create(ExampleConstructor)
Difference between: new ExampleConstructor and Object.create(ExampleConstructor)
代码如附件
function Bird() {
let weight = 15;
this.getWeight = () => weight
}
// let birb = new Bird
let birb = Object.create(Bird.prototype);
console.log(birb.getWeight())
当我使用新的 Bird 时,它 returns 一个功能很好。但是,当我使用 Object.create(Bird.prototype) 时,我得到一个 TypeError 告诉我 birb.getWeight 不是一个函数。
为什么从原型创建会干扰功能?
getWeight
在原型上不存在。它是在构造函数为 运行 时在对象本身上创建的(当您使用 Object.create
而不是调用函数时不会发生这种情况)。
代码如附件
function Bird() {
let weight = 15;
this.getWeight = () => weight
}
// let birb = new Bird
let birb = Object.create(Bird.prototype);
console.log(birb.getWeight())
当我使用新的 Bird 时,它 returns 一个功能很好。但是,当我使用 Object.create(Bird.prototype) 时,我得到一个 TypeError 告诉我 birb.getWeight 不是一个函数。
为什么从原型创建会干扰功能?
getWeight
在原型上不存在。它是在构造函数为 运行 时在对象本身上创建的(当您使用 Object.create
而不是调用函数时不会发生这种情况)。