Difference between: new ExampleConstructor and 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时,它会返回一个函数fine。然而,当我使用Object.create(Bird.prototype(时,我得到一个TypeError,告诉我birb.getWeight不是一个函数。

为什么原型的创造会干扰功能?

getWeight在原型上不存在。它是在运行构造函数时在对象本身上创建的(当您使用Object.create而不是调用函数时不会发生这种情况(。

最新更新