簡體   English   中英

將值設置為引用的JavaScript對象

[英]Set value to a referenced JavaScript object

例如,我有以下JS對象:

var obj = {
    n: 0,
    o: {}
};

var nGlobal = obj.n;
var oGlobal = obj.o;

並希望使用全局變量以使其看起來像這樣:

var obj = {
    n: 5,
    o: {
        x: 7
    }
};

顯然,我能夠為oGlobal的屬性分配值:

oGlobal.x = 7;

但是,有什么方法可以通過nGlobal更改obj.n的值,而無需提及obj
就像這樣:

console.log(obj); // {n: 1, o: {}}

nGlobal.set(5);
// or
nGlobal.value = 5;

console.log(obj); // {n: 5, o: {}}

簡短答案:

不,那里沒有。

長答案:

  1. 在JS中,原始類型是不可變的,並通過值傳遞。
  2. JS實現按值傳遞策略,這意味着所有數據始終按值傳遞(如果您將引用傳遞給對象,則該引用按值傳遞)

以上各項的一個重要結果是:在JS中,無法使用=操作更改原始對象。 也就是說:您可以在擁有對象引用時修改該對象,但是不能將一個對象與其他對象交換,從而所有其他引用也都被“修改”。

有關:

學分:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM