JS【arguments多个参数数组】

 1  function(){
 2 
 3       var i,max = arguments[0];
 4       if(arguments.length<2) return max;
 5       for(i=0;i<arguments.length;i++)
 6       {
 7           if(arguments[i]>max)
 8           {
 9 
10               max = arguments[i];
11 
12           }
13 
14       }
15           return arguments[1];
16 
17      }
arguments参数数组

 

 

作为函数方法调用函数;

call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。

1 function myFunction(a, b) {
2     return a * b;
3 }
4 myObject = myFunction.call(myObject, 10, 2);     // 返回 20
call()
1 function myFunction(a, b) {
2     return a * b;
3 }
4 myArray = [10, 2];
5 myObject = myFunction.apply(myObject, myArray);  // 返回 20
apply()

 

两个方法都使用了对象本身作为第一个参数。 两者的区别在于第二个参数: apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。

在 JavaScript 严格模式(strict mode)下, 在调用函数时第一个参数会成为 this 的值, 即使该参数不是一个对象。

在 JavaScript 非严格模式(non-strict mode)下, 如果第一个参数的值是 null 或 undefined, 它将使用全局对象替代。

 

posted @ 2018-08-02 22:03  Justice-V  阅读(868)  评论(0)    收藏  举报