我在看:
https://babeljs.io/learn-es2015/
它有以下例子:
// Lexical arguments
function square() {
let example = () => {
let numbers = [];
for (let number of arguments) {
numbers.push(number * number);
}
return numbers;
};
return example();
}
square(2, 4, 7.5, 8, 11.5, 21); // returns: [4, 16, 56.25, 64, 132.25, 441]
我试图了解这里发生的事情: 特别是有人可以解释为什么square使用内部箭头功能而不是仅仅执行所需的操作? 这不能重写为:
function square() {
let numbers = [];
for (let number of arguments) {
numbers.push(number * number);
}
return numbers;
}
“example”中的额外包装会改变这个函数的行为吗?
答案 0 :(得分:1)
它只是表明箭头函数中的arguments
是指arguments
函数的square
。一个简单的函数不是这样:
function square() {
let example = function() {
let numbers = [];
for (let number of arguments) {
numbers.push(number * number);
}
return numbers;
};
return example();
}
square(2, 4, 7.5, 8, 11.5, 21); // returns: []