函数的四种调用模式(完整版)

一、上下文调用模式  ===>  可以自己去指定this指向

    // 学习:  call  apply  bind 三个方法
    // 这个三个方法都是Function.prototype原型上的
    // 所有函数都可以去使用call apply bind方法

    console.log(Function.prototype)

方法一  : call

//1.除了使用()来调用函数之外,还可以使用call来调用
  function fn(){
     console.log(123);
  }
  fn();
  fn.call();//fn可以通过原型链找到call
//2.call除了可以调用函数,call第一个参数可以用来修改this指向的
   function fn(){
      console.log(456)
      console.log(this)
   }
   fn(); // 456 window
   fn.call({}); //456  {}
//3.call的第一个参数是用来修改this指向的,除了第一个参数,其它所有的参数都是用来做函数的实参的
//     所以call的参数可以有若干个


function fn(n1,n2){
   console.log(this);
   console.log(n1+n2);
    //所有的实参在arguments里
   console.log(arguments); 
}

fn.call([],100,200,300,400)
   

小结:

   上下文调用模式 ==> 可以自己去修改this指向

    call apply bind 三个方法

call方法 

    作用:

//1.可以调用函数
//2.call的第一个参数用来修改函数内的this指向
//3.call除了第一个参数外,其他所有参数都是用来给函数传递实参

猜你喜欢

转载自www.cnblogs.com/DuYueJin/p/12714720.html