在本melonJS教程之后,我遇到了几种使用回调的方法(滚动到第2部分:加载级别,您将看到完整的代码)
// Set a callback to run when loading is complete.
me.loader.onload = this.loaded.bind(this);我读过关于回调的本教程,所以我理解它们的用途.但我不明白。上面写着this.loaded.bind(this)
1)第一次和第二次this语句的区别是什么?
2)做bind和传入(this)做什么?
谢谢
发布于 2014-03-12 05:28:42
.bind(this)设置函数的上下文
如果只将其设置为this.loaded,则不会保留上下文。
这可能会更有意义
var cntx = this;
me.loader.onload = function() {
cntx.loaded();
}但是,在本例中,不向loaded函数传递任何参数。通过使用bind一行程序,您可以保留上下文,并且不必担心沿途会有任何参数被删除。
在这里阅读关于Function.prototype.bind的文章
https://stackoverflow.com/questions/22342717
复制相似问题