有人可以解释这个功能吗?
var bindbind = Function.prototype.bind.bind(Function.prototype.bind);
我理解它产生的结果:
var bindedContextFunc = bindbind(function)(context);
bindedContextFunc(args);
但不了解创建此功能的过程,我的意思是部分bind(Function.prototype.bind)
有人可以解释这个功能吗?
var bindbind = Function.prototype.bind.bind(Function.prototype.bind);
我理解它产生的结果:
var bindedContextFunc = bindbind(function)(context);
bindedContextFunc(args);
但不了解创建此功能的过程,我的意思是部分bind(Function.prototype.bind)
好的。我们这里有三倍的Function.prototype.bind
函数,其(简化)代码
function bind(context) {
var fn = this;
return function() {
return fn.apply(context, arguments);
}
}
我将使用更多的部分应用程序以更实用的样式进行缩写: bind fn (context) -> fn context。
那么它有什么作用呢?你已经得到bind.call(bind, bind)
或绑定绑定(bind)。让我们将其扩展为绑定bind。如果我们现在给它提供一些论据呢?
绑定绑定(bind) (fn) (上下文)
绑定绑定(fn)(上下文)
绑定fn(上下文)
上下文_
我们到了。我们可以将其分配给一些变量以使结果更清晰:
bindbind = 绑定绑定(绑定)
bindfn = 绑定任何东西(fn)
//
绑定fncontextbindfn = bindfn任何东西(上下文)
//
fn上下文结果 = contextbindfn任何东西(args)
//
fn上下文(args)