在初學Javascript時,我們也許不需要擔心函數綁定的問題,但是當我們需要在另一個函數中保持上下文對象this時,就會遇到相應的問題了,我見過很多人處理這種問題都是先將this賦值給一個變數(比如self、_this、that等),尤其是var that = this是我見的最多的,這樣當你改變 ...
在初學Javascript時,我們也許不需要擔心函數綁定的問題,但是當我們需要在另一個函數中保持上下文對象this時,就會遇到相應的問題了,我見過很多人處理這種問題都是先將this賦值給一個變數(比如self、_this、that等),尤其是var that = this是我見的最多的,這樣當你改變環境之後就可以使用它。這些都是可以的,但是還有一種更好的、更專有的方法,那就是使用Function.prototype.bind,下麵進行詳盡的講解。
第一部分:需要解決的問題
var myObj = { specialFunction: function () { }, anotherSpecialFunction: function () { }, getAsyncData: function (cb) { cb(); }, render: function () { this.getAsyncData(function () { this.specialFunction(); this.anotherSpecialFunction(); }); } }; myObj.render();
想瞭解更多,請移步