gpt4 book ai didi

javascript - 函数的无命名参数会自动插入到具有不同参数名称的子函数中

转载 作者:行者123 更新时间:2023-11-28 03:41:00 24 4
gpt4 key购买 nike

我希望这个标题选得好。所以我从这个网站上的教程学习 JavaScript https://javascript.info/ ,我对章节装饰器应用/调用的任务 1 有问题

我一直在堆栈溢出和互联网上搜索,但找不到答案

function work(a, b) {
alert( a + b ); // work is an arbitrary function or method
}

function spy(func) {
function wrapper(...args) {
wrapper.calls.push(args);
return func.apply(this,arguments);
}
wrapper.calls = []
return wrapper;
}
work = spy(work)
work(1, 2); // 3
work(4, 5); // 9

在代码中有一个函数使用参数a和b,这些参数可以复制到局部变量和函数,这里这些参数在函数spy中复制到子函数包装器,我的问题是为什么a和b被复制转换为带有单词 args 的 ...args ,由剩余运算符 ... 转换为数组 [a,b] 。我可以使用任何单词,如 hello、cow(对于整个代码),结果仍然相同,那么 javascript 如何知道使用单词 args 的调用需要 a 和 b

PS。当将参数复制到局部变量时,我会这样使用它:let value = a;所以我将通过参数的名称来调用它,而不是通过不同的名称(如果我没有记错的话)

最佳答案

JavaScript 只处理位置参数。这些名称只是为了清楚起见。 ...args 将它们剥离。

上面代码中对“func”函数的调用按照接收参数的顺序传递参数,但丢失了名称。

关于javascript - 函数的无命名参数会自动插入到具有不同参数名称的子函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57310290/

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