Javascript 为什么使用Function.prototype.bind而不是Function.prototype.call?
我的理解是,当我使用Javascript 为什么使用Function.prototype.bind而不是Function.prototype.call?,javascript,Javascript,我的理解是,当我使用call方法并提供thisArg时,函数中的this值设置为我传入的对象 myFunction.call(thisArg, arg1, arg2 ...) 另一方面,bind方法返回一个新函数,新函数的this上下文设置为我传入的对象 myFunction.call(thisArg, arg1, arg2 ...) 但我不明白的是为什么使用bind而不是调用。如果我只想更改此的上下文,那么调用对我来说就足够了。那么为什么在IE8及以下浏览器中使用bind呢 那么,什么时候
call
方法并提供thisArg
时,函数中的this
值设置为我传入的对象
myFunction.call(thisArg, arg1, arg2 ...)
另一方面,bind
方法返回一个新函数,新函数的this
上下文设置为我传入的对象
myFunction.call(thisArg, arg1, arg2 ...)
但我不明白的是为什么使用bind
而不是调用
。如果我只想更改此
的上下文,那么调用对我来说就足够了。那么为什么在IE8及以下浏览器中使用bind呢
那么,什么时候使用bind
比call
更好呢
什么时候使用bind
比call
更好
回调
如果您需要确保在特定对象的上下文中调用函数,但无法控制函数的调用方式(例如当您将函数作为参数传递给回调时),则可以使用bind
myFunction.bind(thisArg, arg1, arg2 ...)
当您想将绑定函数传递给其他对象时。我非常不理解,但基于您的示例创建此函数有助于我理清思路。谢谢