所以我正在使用 javascript 学习原型(prototype),并尝试了一些代码:
function Employee(name) { this.name= name; }
var m = new Employee("Bob");
var working= { isWorking: true };
Employee.prototype = working;
alert(m.isWorking);
不幸的是,我收到了未定义的消息,而不是真实值。这个结果有什么原因吗?
我做了几个测试。我得出的结论是,重新分配原型(prototype)对象会导致任何先前创建的 Employee 类实例无法访问在新分配的原型(prototype)中找到的任何属性。这准确吗?
最佳答案
更改原型(prototype)不会影响已经创建的对象。它只会影响基于该对象创建的对象。
有一个属性__proto__
这可以用来改变原型(prototype),但它的实现不是必需的。 ES6 确实定义了 setPrototypeOf
更改原型(prototype)的方法,但由于它仅在 ES6 中,因此支持可能会有所不同。
关于javascript - 使用原型(prototype) [javascript] 的未定义结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34148348/