javascript - 通过完整引用传递变量

标签 javascript

我想将一个对象或数组传递给函数,使其未定义,并在函数执行结束后查看变化。

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/

相关文章:

javascript - 用 for 替换 jQuery each

javascript 点击事件不适用于 iOS 中 contenteditable div 内的链接

javascript - 简单的 Javascript 登录表单

javascript - 如何给用coffeebar编译的文件下命令

javascript - 使用单词边界

javascript - Service Worker app-shell PHP 实现

javascript - 如何从tbody jquery中找到点击的tr

javascript - Jasmine 2.0 中的异步工作流测试

javascript - 如何从 Cypress 返回 Map 对象?

javascript - 是否可以只在顶部元素上触发 jQuery.click?