请问apply方法传递数组和直接传递数组

来源:5-14 编程练习

慕少0288913

2019-08-14 19:50:02

//1、
     	var data = [3,4,2,1];
    	function multiply(){
    		var sum = 1;
    		for(var i = 0; i<arguments.length; i++){
    			sum*= arguments[i];
    		}
    		return sum;
    	}   
//2、
    	var data = [3,4,2,1];
    	function multiple(arr){
    		var sum = 1;
    		for(var i=0; i<arr.length; i++){
    			sum *= arr[i];
    		}
    		return sum;
    	}

请问这两种方法有什么区别吗,这种情况下用apply有什么优势吗?

写回答

2回答

好帮手慕码

2019-08-15

同学你好!

这两段代码中,两种方法效果都是一样的,没有太大区别。

apply的优势在于它的用法:function.apply(obj,args)方法能接收两个参数

obj:这个参数是你调用这个函数的对象,必须指定调用对象,如果没有可以写null。如果函数有this,那么这个参数就代表了this的指向

args:这个是数组,它将作为参数传给function.

如果帮助到了你 ,欢迎采纳 ,祝学习愉快~

0

慕少0288913

提问者

2019-08-14

//1、
multiply.apply(this,data);
//2、
multiple(data);


0

0 学习 · 14456 问题

查看课程