2016-07-14 133 views
-1

是否有某種某種「共享」變量的方式?我想要做的是這樣的:node.js如何使一個變量適用於另一個變量?

var id = 5; 
var player = new Player(id); 

var array1[0] = player; 
var array2[0] = player; 

array1[0].id = 8 

console.log(array1[0]); //8 
console.log(array2[0]); //8 
+3

你試過嗎?我很確定這應該工作,因爲對象通過引用傳遞。 –

+0

還沒有嘗試過,因爲它對我來說甚至不合邏輯 – Donatas

+0

在詢問它之前嘗試一個示例是一個好主意。 –

回答

0

在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.

相關問題