gpt4 book ai didi

javascript - 在原型(prototype)中使用数组

转载 作者:行者123 更新时间:2023-11-30 08:03:00 24 4
gpt4 key购买 nike

我的 OOP JavaScript 有问题。如果对象中有一个数组,并且我将内容推送到对象的新实例中,它就会保存到所有实例中。有谁知道我做错了什么?

function Car(){}
Car.prototype.name = "";
Car.prototype.color = [];

var suv = new Car;
suv.color.push("black"); //black

var sedan = new Car;
sedan.color.push("green"); //black, green

最佳答案

您希望汽车的每个实例都有自己的数组,所以您不应该在原型(prototype)上定义它。原型(prototype)是您通常放置在所有实例之间共享的东西的地方,例如所有 Car 都具有的函数,或者未在每个实例上定义的属性的默认值:

function Car(name){
if ( typeof name === 'string' )
this.name = name;
this.color = [];
}
Car.prototype.name = "No name"; // Default name

var suv = new Car('SUV');
suv.color.push("black");
console.log(suv.name); // "SUV"

var sedan = new Car;
sedan.color.push("green");
console.log(sedan.name); // "No name"

关于javascript - 在原型(prototype)中使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23502123/

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