我下面谷歌瀏覽器的擴展開發指南在這裏: http://developer.chrome.com/extensions/getstarted.html爲什麼bind(this)在這一行中是必需的?
在這個文件的第41行:http://sprunge.us/NFjZ
3210,他們用這樣 this.showPhotos_.bind綁定功能(這) ;如果沒有這種綁定,示例擴展將不起作用。我在showPhotos_方法中測試並驗證「this」只是kittenGenerator對象。因爲showPhotos_只是該對象的一個方法,所以這應該隱式地完成,那爲什麼這個綁定是必要的呢?
請注意,由於popup.js文件中的拼寫錯誤,Google的示例將不起作用。 要更正它,請將「kittensOnFlickr_」更改爲「searchOnFlickr_」。
也許該方法稍後移到其他地方? – 2013-02-10 19:28:31
@JanDvorak不,不是。 – qed 2013-02-10 19:30:23
因爲它是一個事件處理程序,如果沒有這個綁定,你會失去處理程序的範圍。而'這個'會叫'窗口' – YoannM 2013-02-10 19:31:40