f = Bind(this, this.Move, 'a', 'b', 'c');
然后f就是一个函数
如果你调用 f:f(1,2,3,4)
在 f 内就会调用
object.fun('a', 'b', 'c', 1,2,3,4)
下面是解释:
Bind函数返回一个函数,就是里面的那个匿名函数 return function() {...}
然后你得知道call和apply是什么意思,见如下等式:
foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments)==this.foo(arg1, arg2, arg3)
然后Array的slice方法的意思是分割数组
var args = Array.prototype.slice.call(arguments,2); 这句话将Bind的参数从第三个开始分割,也就是除了object和fun两个参数以外的所有参数
然后在匿名函数funciton里面,args又调用concat(就是连接数组),将这个匿名函数的参数arguments(arguments是关键字)和自己连接起来,并座位fun这个函数的参数用object调用。
是一个有返回值的函数