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