JavaScript中bind、call、apply方法

52 阅读1分钟
1. bind方法作用
1.修改函数或方法中的this为指定对象,并且返回一个修改之后的新函数给我们
2. 注意点:bind方法除了可以修改this以外,还可以传递参数,只不过参数必须写在this对象的后面

      let name = 'liu'  

      function demo(a,b){
          console.log(a,b);
          console.log(this);
      }  

      let fn = demo.bind(name,10,20)
      
      fn()
2. call方法作用
1.修改函数或方法中的this为指定对象,并且会立即调用修改之后的函数
  注意点:call方法除了可以修改this以外,还可以传递参数,只不过参数必须写在this对象的后面
 
     let a = 10
     
     function text(a){
         console.log(a);
         console.log(this);
     }
     
     text.call(a,20)
3.apply方法作用
1.修改函数和方法中的this为指定对象,并且会立即调用修改之后的函数
  注意点:apply方法除了可以修改this以外,还可以传递参数,只不过参数必须通过数组的方式传递

    let b = 20
    
    function add(z){
        console.log(z);
        console.log(this);
    }
    add.apply(b,[10])