gpt4 book ai didi

javascript - 如何防止BabelJS创建 'arguments'关键字的全局变量?

转载 作者:行者123 更新时间:2023-11-28 17:38:25 26 4
gpt4 key购买 nike

在一个项目中,我有这个 BabelJS 配置:

{
"presets": ["es2016"]
}

代码中的某个地方有一个方法使用标准 JS 'arguments' 关键字来处理动态范围的参数。像这样的事情:

const myFunction = () => {
// pass all arguments with spread operator
someOtherFunction(...arguments);
}

myFunction('one', 'two', 3, {number: 4});

到目前为止一切顺利,但是当 BabelJS 完成时,它 (1) 将“参数”定义为全局变量,并且 (2) 其本身注定会失败:

var arguments = arguments;

有没有办法阻止 BabelJS 这样做?通过配置或一些特殊注释来进行异常(exception)?

最佳答案

不要使用神奇的arguments变量。

(...args) => {
// pass all arguments
someOtherFunction(...args);
}

如果由于某种原因,您必须使用 arguments 变量(提示,您几乎总是不使用),则必须使用 .apply( ) 就像 ES5 出现之前一样。

(function() {
someOtherFunction.apply(null, arguments);
})

关于javascript - 如何防止BabelJS创建 'arguments'关键字的全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48560169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com