我剛剛開始使用Javascript,backbone和jquery。我的同事試圖在Javascript中解釋這個概念和上下文。他說這種模式很常見,但可能有更好的方法來做到這一點。我想知道它是否實際上是「標準」模式,或者是否有更好的方法。在異步調用之前在Javascript中保存'this'
基本上,當我在我的課上正在處理屏幕上顯示的內容(對於我們來說,它是MVC和主幹的組合)時,我需要獲取我的數據以填充頁面。但是,我們取之前,我們做
var _this = this;
由於Ajax調用,我們要做的就是非同步,他說,如果我們成功處理程序,如果我們這樣做
this.model.property = // set some property from the callback
這不會是我們想要的東西我們需要做
_this.model.property = // something
我想我想知道這是否非常標準。我覺得在Javascript一週後,我每次從服務器獲取數據時都會這樣做,有時在我嘗試使用下劃線的_.each格式化頁面之前,我想我的_.each塊中的「this」發生了變化以及。謝謝!
您還可以使用_.bind在功能,但作爲這個綁定你的同事的工人說,這是js中一個很常見的模式來存儲這個對象。 – 2013-03-22 08:22:08
這是一個標準。只要確保'_this'變量只是一個塊變量,所以當它不再被使用時它就會被垃圾收集 – Eru 2013-03-22 08:22:41