在JavaScript中,您不直接將對象存儲在變量中,而是存儲對象的引用。
這意味着,你可以有兩個變量指向同一個對象 - 你只需複製參考:
var a = {test: "test"};
var b = a;
console.log(a === b) // true
在這種情況下,如果您通過a
變異的對象,後來通過b
讀它,你會看到變化。
有了正確實施Player
,可以使這項工作對您:
var Player = function(id) {
this.id = id;
}
Player.prototype.setId = function(id) {
this.id = id;
}
Player.prototype.getId = function() {
return this.id;
}
var player = new Player(5);
console.log(player.getId()); // 5
var arrA = [];
var arrB = [];
arrA.push(player);
arrB.push(player);
console.log(arrA[0].getId()); // 5
console.log(arrB[0].getId()); // 5
arrA[0].setId(10);
console.log(arrA[0].getId()); // 10
console.log(arrB[0].getId()); // 10
Check MDN for more info on working with objects.
你試過嗎?我很確定這應該工作,因爲對象通過引用傳遞。 –
還沒有嘗試過,因爲它對我來說甚至不合邏輯 – Donatas
在詢問它之前嘗試一個示例是一個好主意。 –