关注this melonJS tutorial,我对使用此回调的方式感到困惑(向下滚动到第2部分:加载我们的级别,您将看到完整的代码)
// Set a callback to run when loading is complete.
me.loader.onload = this.loaded.bind(this);
我读了this tutorial on callbacks,所以我明白了它们的用途......但我不明白。它说this.loaded.bind(this)
1)第一个和第二个this
语句之间有什么区别
2)做bind
和传递(this)
做了什么?
谢谢
答案 0 :(得分:1)
.bind(this)
设置函数的上下文
如果您只将其设置为this.loaded
,则不会保留上下文
这可能会更有意义
var cntx = this;
me.loader.onload = function() {
cntx.loaded();
}
但是,在此示例中,没有参数传递给loaded
函数。通过使用bind
一行代码,您可以保留上下文,并且您不必担心在此过程中会丢弃任何参数。