0

按照这个 melonJS 教程,我被这个回调的几种使用方式难住了(向下滚动到第 2 部分:加载我们的关卡,你会看到完整的代码)

// Set a callback to run when loading is complete.
me.loader.onload = this.loaded.bind(this);

我阅读了关于回调的本教程,所以我了解它们的用途......但我不明白。它说this.loaded.bind(this)

this1)第一个和第二个语句有什么区别

2)做什么bind和传入(this)做什么?

谢谢

4

1 回答 1

1

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

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

这可能更有意义

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

然而,在这个例子中,没有参数被传递给loaded函数。通过使用bind单线,您可以保留上下文,并且您不必担心在此过程中会丢弃任何参数。

在此处阅读有关Function.prototype.bind的信息

于 2014-03-12T05:28:42.287 回答