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