gpt4 book ai didi

javascript - 对象实例共享子属性?

转载 作者:行者123 更新时间:2023-12-02 16:54:41 27 4
gpt4 key购买 nike

给出以下代码:

var Car = function() {};

Car.prototype = {
wheels: {
rims: 'steel'
}
}

var volvo = new Car;
var mercedes = new Car;

volvo.wheels.rims = 'aluminium';

console.log(volvo.wheels.rims, mercedes.wheels.rims); // 'aluminium', 'aluminium'

你能解释一下为什么吗实例 mercedesAuto自动继承 rims 的子属性定义来自volvo

请注意,以下代码在相同的设置下按预期工作:

volvo.wheels = 4;

console.log(volvo.wheels, mercedes.wheels); // 4, Object { rims: 'steel' }

最佳答案

您只能为轮子创建一个对象。

您将此对象分配给原型(prototype),因此每个实例都会继承它的值。

Javascript永远不会自动复制对象。

相反,您应该在构造函数中创建对象,以便为每个实例获得一个新对象。

关于javascript - 对象实例共享子属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26261162/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com