bind
语法:
_.bind(function, object, *arguments)
说明:
function:第一个参数为一个方法。
object:传递第一个函数里面所需要的参数。
*arguments:可以传递多个参数。
给一个object绑定到一个function上,任何时候调用方法,function里面的this都指向这个object
代码示例:
示例一: bind调用function方法的使用
var func = function (greeting) {
return greeting + ': ' + this.name
};
func = _.bind(func, {
name: 'moe'
}, 'hi');
func();
//或者:
var func = function (greeting) {
return greeting + ': ' + this.name
};
func = _.bind(func, {
name: 'moe'
});
func('hi');
//以上两种形式均输出如下内容
//=> 'hi: moe'
示例二:bind 该方法绑定函数运行时的上下文,返回一个新函数。
var o = {
p: 2,
m: function (){console.log(this.p);}
};
o.m();
//=>2
_.bind(o.m,{p:1})()
//=> 1
示例三:bind方法还可以接受更多参数,它们表示函数方法运行时所需的参数
var add = function(n1,n2,n3) {
console.log(this.sum + n1 + n2 + n3);
};
_.bind(add, {sum:1}, 1, 1, 1)();
//或者:
_.bind(add, {sum:1})(1, 1, 1);
//=> 4