在箭头函数中添加多个参数时显示错误 "argument is not defined" 但它在正常函数调用中工作
Showing Error "argument is not defined" while adding multiple arguments in arrow function but It's Working in Normal Function call
//示例 - 1
函数 add1(){
if (arguments.length == 0){
document.write("NO Argument Passed!");
}
else{
let sum = 0;
for(let num in arguments){
sum += arguments[num];
}
document.write(sum);
}
}
add1(5,10);
在这个例子中,我得到了正确的结果。
//示例 - 2(带箭头功能)
令总和 = () => {
if( arguments.length == 0){
document.write("NO Argument Passed!");
}
else{
let sum1 = 0;
for(let number in arguments){
sum1 += arguments[number];
}
document.write(sum1);
}
};
sum(10,20);
*这里我在控制台中收到错误消息“未定义参数”。请告诉我我在哪里做的Wrong.Thank你..!
这是因为箭头函数 do not have argument bindings。
选项 1 更改箭头函数以获取数组 arguments
参数
let sum = (arguments) => {
if( arguments.length == 0){
console.log("NO Argument Passed!");
}
else{
let sum1 = 0;
for(let number in arguments){
sum1 += arguments[number];
}
console.log(sum1);
}
};
sum([10,20]);
选项 2 rest parameters 允许无限数量的参数
let sum = (...arguments) => {
if( arguments.length == 0){
console.log("NO Argument Passed!");
}
else{
let sum1 = 0;
for(let number in arguments){
sum1 += arguments[number];
}
console.log(sum1);
}
};
sum(10,20);
//示例 - 1
函数 add1(){
if (arguments.length == 0){
document.write("NO Argument Passed!");
}
else{
let sum = 0;
for(let num in arguments){
sum += arguments[num];
}
document.write(sum);
}
}
add1(5,10);
在这个例子中,我得到了正确的结果。
//示例 - 2(带箭头功能)
令总和 = () => {
if( arguments.length == 0){
document.write("NO Argument Passed!");
}
else{
let sum1 = 0;
for(let number in arguments){
sum1 += arguments[number];
}
document.write(sum1);
}
};
sum(10,20);
*这里我在控制台中收到错误消息“未定义参数”。请告诉我我在哪里做的Wrong.Thank你..!
这是因为箭头函数 do not have argument bindings。
选项 1 更改箭头函数以获取数组 arguments
参数
let sum = (arguments) => {
if( arguments.length == 0){
console.log("NO Argument Passed!");
}
else{
let sum1 = 0;
for(let number in arguments){
sum1 += arguments[number];
}
console.log(sum1);
}
};
sum([10,20]);
选项 2 rest parameters 允许无限数量的参数
let sum = (...arguments) => {
if( arguments.length == 0){
console.log("NO Argument Passed!");
}
else{
let sum1 = 0;
for(let number in arguments){
sum1 += arguments[number];
}
console.log(sum1);
}
};
sum(10,20);