bind

http://runjs.cn/code/eit2ruya

语法:

_.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