function.bind(thisArg, arg1, arg2, ...) bind方法创建一个新的函数,并且函数中的this指向为传入的thisArg参数,其余参数会预先添加到原函数的参数列表中。新函数相当于是原函数的包装,在调用时原函数同样会被调用。
示例1:指定调用函数中的this指向
this.x = 9; // 在浏览器中,this指向全局的 "window" 对象 var module = { x: 81, getX: function() { return this.x; } }; module.getX(); // 81 var retrieveX = module.getX; retrieveX(); // 返回9 - 因为函数是在全局作用域中调用的 // 创建一个新函数,把 'this' 绑定到 module 对象 // 新手可能会将全局变量 x 与 module 的属性 x 混淆 var boundGetX = retrieveX.bind(module); boundGetX(); // 81
示例2:预先插入函数的参数
function addArguments(arg1, arg2){ return arg1 + arg2; } var bindFunc = addArguments.bind(null, 100); var result = bindFunc(200, 300);// 300会被忽略 // 300