不清楚melonJS使用回调

时间:2014-03-12 05:26:52

标签: javascript callback bind melonjs

关注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)做了什么?

谢谢

1 个答案:

答案 0 :(得分:1)

.bind(this)设置函数的上下文

如果您只将其设置为this.loaded,则不会保留上下文

这可能会更有意义

var cntx = this;
me.loader.onload = function() {
  cntx.loaded();
}

但是,在此示例中,没有参数传递给loaded函数。通过使用bind一行代码,您可以保留上下文,并且您不必担心在此过程中会丢弃任何参数。

在这里阅读Function.prototype.bind