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返回的函数执行才执行