Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组作为参数传递时调用和应用之间的实际差异_Javascript_Arrays_Apply - Fatal编程技术网

Javascript 将数组作为参数传递时调用和应用之间的实际差异

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需要一个参数数组,

调用中传递数组时,方法工作得很好,因为我能够迭代它,但是

如果是apply,则在迭代数组时会出现错误。(尽管它只接受类似数组的对象作为参数)

它给出了一个错误

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()方法只接受参数数组。 在这两种方法中迭代数组之间没有这样的区别。
有关更多详细信息,请参阅此

非常感谢尼娜的参与……它确实帮助了我。