我是 JS 新手,让我们看看下面的代码。
我想在使用 proto 时将鼠标的 legs 属性值更改为 2,但我无法更改它。我得到的输出只有 4。请帮忙这是为什么?
function Animal() {
this.legs = 4;
}
var mouse = new Animal();
mouse.__proto__.legs = 2;
console.log(mouse.legs);
最佳答案
您不能以这种方式更改实例属性。
mouse.__proto__
包含构造函数 Animal
。
如果你只想改变鼠标的腿,你必须这样做:
mouse.legs = 2
如果你想改变所有 future 的动物——很遗憾你做不到。 new Animal()
将始终引用原始构造函数。
当你调用new Animal
时,JS引擎没有引用Animal.prototype.constructor
,它使用Animal
作为构造函数函数和 Animal.prototype
作为新创建对象的原型(prototype),忽略 Animal.prototype.constructor
。
关于javascript - 更改原型(prototype)中的值在 JavaScript 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57472120/