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