Javascript 使用function.bind将函数绑定到此
不要介意这是函数式编程,我很难理解的是,当您在bind方法中使用函数作为第一个参数时会发生什么Javascript 使用function.bind将函数绑定到此,javascript,function,bind,Javascript,Function,Bind,不要介意这是函数式编程,我很难理解的是,当您在bind方法中使用函数作为第一个参数时会发生什么 monadWithValue.bind(callback); 通常,它通过提供一个对象来分配上下文,该对象将成为它所指的对象 var monadWithValue = Monad( value ); function callback(value) { var newValue = calculate…new…value…from…value; return Monad( newV
monadWithValue.bind(callback);
通常,它通过提供一个对象来分配上下文,该对象将成为它所指的对象
var monadWithValue = Monad( value );
function callback(value) {
var newValue = calculate…new…value…from…value;
return Monad( newValue );
}
var monadWithNewValue = monadWithValue.bind(callback);
通常我会做一些类似的事情:
function add() {
return this.a + this.b;
}
var context = {
a:10,
b:20
};
add.bind(context);
add();
函数也只是一个对象
var foo = function () { };
foo.bar = 'baz';
您可以使用
foo()
调用此对象,但除此之外,它的行为与任何其他对象完全相同。您可以毫无问题地将此
绑定到foo
。函数也只是一个对象
var foo = function () { };
foo.bar = 'baz';
您可以使用
foo()
调用此对象,但除此之外,它的行为与任何其他对象完全相同。您可以毫无问题地将this
绑定到foo
。函数也只是一个对象……是的,我理解这一点-但它将如何变成这一点newValue是这个对象的一个属性吗?return语句是如何解释的?我猜monadWithValue.bind
不是Function.prototype.bind
,因为bind在monad中有特殊的含义。newValue
与这件事无关。假设monadWithValue
是一个函数,那么monadWithValue.bind(callback)
使它成为这样,当您调用monadWithValue()
时,这个在monadWithValue
中指的是回调
。仅此而已。没有更多,也没有更少。@deceze-那么你同意monadWithValue.bind在本例中不是Function.prototype.bind吗?函数也只是一个对象……是的,我理解-但它怎么会变成这个呢?-newValue是这个对象的一个属性吗?return语句是如何解释的?我猜monadWithValue.bind
不是Function.prototype.bind
,因为bind在monad中有特殊的含义。newValue
与这件事无关。假设monadWithValue
是一个函数,那么monadWithValue.bind(callback)
使它成为这样,当您调用monadWithValue()
时,这个在monadWithValue
中指的是回调
。仅此而已。不多不少。@deceze-那么您同意monadWithValue.bind在本例中不是Function.prototype.bind吗?