zoukankan      html  css  js  c++  java
  • apply call bind

    apply、call 区别

    都是改变this 指向的;

    对于 apply、call 二者而言,作用完全一样,只是接受参数的方式不太一样。例如,有一个函数定义如下:

    func.call(this, arg1, arg2);
    func.apply(this, [arg1, arg2])

    bind() 方法与 apply 和 call 很相似,也是可以改变函数体内 this 的指向。

    MDN的解释是:bind()方法会创建一个新函数,称为绑定函数,当调用这个绑定函数时,绑定函数会以创建它时传入 bind()方法的第一个参数作为 this,传入 bind() 方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数。

    this.num = 9; 
    var mymodule = {
      num: 81,
      getNum: function() { 
        console.log(this.num);
      }
    };
    
    mymodule.getNum(); // 81
    
    var getNum = mymodule.getNum;
    getNum(); // 9, 因为在这个例子中,"this"指向全局对象
    
    var boundGetNum = getNum.bind(mymodule);
    boundGetNum(); // 81
     
  • 相关阅读:
    1044 拦截导弹
    3060 抓住那头奶牛 USACO
    2727:仙岛求药(广搜)
    4906 删数问题(另一种贪心思路)
    1004 四子连棋
    1005 生日礼物
    1031 质数环
    1008 选数
    1073 家族
    2801 LOL-盖伦的蹲草计划
  • 原文地址:https://www.cnblogs.com/lisiyang/p/10763107.html
Copyright © 2011-2022 走看看