Javascript 将数组作为参数传递时调用和应用之间的实际差异
在调用中传递数组时,方法工作得很好,因为我能够迭代它,但是 如果是apply,则在迭代数组时会出现错误。(尽管它只接受类似数组的对象作为参数) 它给出了一个错误Javascript 将数组作为参数传递时调用和应用之间的实际差异,javascript,arrays,apply,Javascript,Arrays,Apply,在调用中传递数组时,方法工作得很好,因为我能够迭代它,但是 如果是apply,则在迭代数组时会出现错误。(尽管它只接受类似数组的对象作为参数) 它给出了一个错误 Uncaught TypeError: marks is not iterable 在另一种情况下,当我将循环更改为 for(let i=0 ;i<marks.length;i++){ console.log('marks :'+marks[i]); } for(设i=0;i需要一个参数数组,
Uncaught TypeError: marks is not iterable
在另一种情况下,当我将循环更改为
for(let i=0 ;i<marks.length;i++){
console.log('marks :'+marks[i]);
}
for(设i=0;i需要一个参数数组,但这里有一个值数组,它不适合内部for
循环
要使其工作,需要将数组包装为数组中的参数
var getMarksApply = getMarks.apply(student, [[99, 78, 89, 90]]);
var学生={
fname:‘vipul’,
名称:“贾达夫”,
全名:函数(){
返回(this.fname+“”+this.lname);
}
}
函数getMarks(marks){
console.log('USER:'+this.fullName());
console.log('标记:')
对于(让我来看看分数){
console.log('marks:'+i);
}
}
var getMarksCall=getMarks.call(学生[99,78,89,90]);
var getMarksApply=getMarks.apply(学生[99,78,89,90]]);
//^ ^
.as控制台包装{max height:100%!important;top:0;}
apply()方法接受一个参数数组。因此,如果将数组作为参数传递,那么它应该在数组中
var getMarksApply = getMarks.apply(student, [[99, 78, 89, 90]]);
两者之间的唯一区别是call()方法可以接受参数或参数数组,而apply()方法只接受参数数组。
在这两种方法中迭代数组之间没有这样的区别。
有关更多详细信息,请参阅此非常感谢尼娜的参与……它确实帮助了我。