参数和指代问题

来源: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回答

好帮手慕星星

2020-08-01

同学你好,代码实现效果很棒!

针对提问回复:

1、arguments 是一个对应于传递给函数参数的类数组对象。如果函数没有写形参,用arguments接收即可

http://img.mukewang.com/climg/5f2535090932ab7903080028.jpg

http://img.mukewang.com/climg/5f2535160999e95207670229.jpg

对arguments进行遍历,类似于对[3,4,2,1]数组进行遍历,然后再进行乘法计算。

2、apply方法第一个参数为对象,主要是用于改变函数中this指向。不过当前函数中没有涉及到this,所以任意对象都是可以的,也可以写为null。这里主要是用第二个参数传递数组。关于apply这里了解一下即可,在后面面向对象中有对apply方法的详细讲解。

祝学习愉快!

0

0 学习 · 14456 问题

查看课程