2014-03-12 28 views
0

之後this melonJS tutorial,我被幾個方面,這回調用於難倒(向下滾動到第2部分:加載我們水平,你會看到完整的代碼)不明就melonJS使用回調

// 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

.bind(this)設置功能

如果你只把它設置爲this.loaded,上下文不保留

這可能使一些更有意義

var cntx = this; 
me.loader.onload = function() { 
    cntx.loaded(); 
} 
的情況下

但是,在此示例中,沒有參數傳遞給loaded函數。通過使用bind單線程,您可以保留上下文,並且您不必擔心任何參數被丟棄。

閱讀關於Function.prototype.bind這裏

+0

在這種情況下,「this」是什麼,以及上下文是什麼意思? – Growler

+0

@Growler,請閱讀[this](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this) – naomik