在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!”。有没有办法写这样的函数?
答案 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函数更改变量的值。