以以下代码为例:
function Fn() {}
Fn.prototype = {
isIt: true
};
let fn = new Fn();
Fn.prototype = {
isIt: false
}
console.log(fn.isIt); // true
当我们使用new关键字实例化一个新函数时,幕后发生的事情之一是Fn的原型获得了“链接”到fn原型。因此,它不是副本,例如,如果我们试图在位于Fn.prototype上的fn上运行一个方法,它通过该对象执行代码。所以我只是有点困惑。
发布于 2020-07-18 11:41:39
当代码新Foo(.)执行时,会发生以下情况:
您可以看到这里创建的对象是从Foo.prototype继承的,所以如果对后者进行更改,则对继承的对象没有任何影响。
https://stackoverflow.com/questions/62967962
复制相似问题