gpt4 book ai didi

javascript - 如何在调用 Object.create 时实例化所有属性对象?

转载 作者:行者123 更新时间:2023-11-30 09:39:15 26 4
gpt4 key购买 nike

我有一个卡片对象,我正试图将其用作一个类。

var Card = {
image: new Image(),
x: 0,
y: 0,
setImage: function(ii){

this.image.src = "assets/" + ii;


}

};

然后我将上面的“类”实例化为:

var card = Object.create(Card);
card.setImage(cardsNames[i]);

似乎 Object.create() 会创建一个对象的实例,但在它内部不会创建唯一的图像对象。

例如

如果我创建两张卡片

var card1 = Object.create(Card);
card1.setImage(cardsNames[0]);

var card2 = Object.create(Card);
card2.setImage(cardsNames[1]);

这里 card1.image 和 card2.image 都指向同一个 Image() 对象。我怎样才能使当我通过 Object.create() 实例化对象时,内部对象也将被复制?感谢您的帮助!谢谢!

最佳答案

您可以将可实例化函数与 new operator 一起使用.这将创建一个新实例并分离数据。

function Card() {
this.image = new Image();
this.x = 0;
this.y = 0;
this.setImage = function (ii) {
this.image.src = "assets/" + ii;
};
};

var card1 = new Card,
card2 = new Card;

card1.setImage(42);
console.log(card1.image); // <img src="assets/42"></img> with source
console.log(card2.image); // <img></img> no source

关于javascript - 如何在调用 Object.create 时实例化所有属性对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42020126/

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