首页 > 代码库 > call和apply

call和apply

  • call和apply的作用:
    1、调用函数
    2、改变所调用函数的内部的this指向
    3、借用别的对象的方法
    */
    function foo(a,b,c){
    console.log(a,b,c);
    console.log(a + b + c);
    console.log(this);
    }
    // foo(1,2,3);
    // call的参数是单个的
    foo.call(null,1,2,3);
    // // apply的参数是一个数组
    // foo.apply(null,[1,2,3]);

  • // 在全局作用域内,所有的全局变量和全局函数都是window的成员(属性或者方法)
    var a = 1,b = 2;
    function fn(c,d){
    console.log(this.a + this.b + c + d);
    }
    fn(3,4);    //10
    fn.call({
    a : 3,
    b : 4
    },5,6);     //18
    fn.apply({
    a : 6,
    b : 9
    },[7,8]);   //30

  •   var arr = [12,324,45,456,56,6767,34];

         console.log(Math.max.apply(null,arr));  //6767

call和apply