原生方法系列 3(查缺补漏 不断更新)

bind    对于给定函数,创建具有与原始函数相同的主体的绑定函数。在绑定函数中,this 对象将解析为传入的对象。绑定函数具有指定的初始参数

返回值   与 function 函数相同的新函数,thisArg 对象和初始参数除外

这个函数的功能就是改变原来函数的this对象和初始化参数

  var check = function(value) {
    if(typeof value !== 'number') {
      return false;
    } else {
      return value >= this.min && value <= this.max;
    }
  }

  var range = {
    max:20,
    min:10
  };
  var getCheck = check.bind(range);
  var result = getCheck(12);
  console.log(result);//true

在上面的例子中我们将this对象也就是range传入到生成的函数中,此时函数中的this引用的就是range

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

  var obj = {};
  var get = test.bind(obj,"a");
  get("b");

通过上面的使用方式,就能达到初始化参数的目的,但是绑定阶段的函数是不执行的,不像apply 和call 绑定this和传入参数后就在相应的this下执行了相应的函数,bind是在bind返回的函数执行才执行

 

posted on 2016-05-05 16:58  icantunderstand  阅读(153)  评论(0编辑  收藏  举报

导航