我想将一个对象或数组传递给函数,使其未定义,并在函数执行结束后查看变化。
var arr = ['aaa', 'bbb', 'ccc'];
var reset = function (param) {
param[0] = 'bbb';
param = undefined;
}
reset(arr);
好吧,所以结果是['bbb', 'bbb', 'ccc']
,但我希望它是未定义
。是否可以有效地做到这一点?
最佳答案
JavaScript 是一种按值传递语言,因此修改函数内部函数参数的值不会对作为参数传递的变量产生影响。
如果你想做类似的事情,你可以让你的函数返回值:
var reset = function(param) {
// think think think
if (whatever)
return undefined;
return param;
};
arr = reset(arr);
现在,如果函数认为正确的做法是清空源变量,它将返回 undefined
。
但是,如果您只想清除变量,则不需要函数:
arr = undefined;
关于javascript - 通过完整引用传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39670129/