用于编辑原始对象的JavaScript函数

时间:2014-10-22 04:50:17

标签: javascript variables

在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!”。有没有办法写这样的函数?

2 个答案:

答案 0 :(得分:0)

不,但另一个接近的选择是将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);

答案 1 :(得分:0)

以下是使用JavaScript Closures执行此操作的方法;

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函数更改变量的值。