簡體   English   中英

JavaScript函數編輯原始對象

[英]JavaScript function to edit original object

用JavaScript有什么辦法可以編寫類似以下的函數:

var a = "Hello"

function change(variable, value) {
//Code that edits original variable, not the variable argument
}

alert(a)
change(a, "World!");
alert(a);

這將首先輸出“ Hello”,然后輸出“ World!”。 有什么辦法可以寫這樣的函數嗎?

否,但是更接近的選擇是將a視為JS對象:

var a = { value : "Hello" };

function change(variable, value) {
    //I'll let you work this part out
}

alert(a.value);
change(a, "World!");
alert(a.value);

這是通過使用JavaScript閉包來實現的;

var obj = (function() {
           var x = 'hello'; 
           return { 
                  get: function() { 
                       return x; 
                  }, 
                  set: function(v) { 
                       x = v; }
                  }
                  })();

obj.get(); // hello
obj.set('world');
obj.get(); // world

您只能使用get和set函數來更改變量的值。

暫無
暫無

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

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