参数和指代问题
来源:5-14 编程练习
星辰也伤风
2020-08-01 16:09:57
<script>
var datas = [3, 4, 2, 1];
var multiply = function() { //这里不是没有参数吗?
var sum = 1;
for (var i = 0; i < arguments.length; i++) {
sum *= arguments[i];
}
return sum;
}
console.log(multiply.apply(window, datas));
</script>
老师,如果传入多个参数,arguments指代的是什么呢,还有call和apply方法的第一个参数有什么用呢
1回答
同学你好,代码实现效果很棒!
针对提问回复:
1、arguments 是一个对应于传递给函数参数的类数组对象。如果函数没有写形参,用arguments接收即可
对arguments进行遍历,类似于对[3,4,2,1]数组进行遍历,然后再进行乘法计算。
2、apply方法第一个参数为对象,主要是用于改变函数中this指向。不过当前函数中没有涉及到this,所以任意对象都是可以的,也可以写为null。这里主要是用第二个参数传递数组。关于apply这里了解一下即可,在后面面向对象中有对apply方法的详细讲解。
祝学习愉快!
相似问题