2014-09-11 61 views

回答

2

它對性能沒有幫助。它有助於混淆。 this自動重新分配很多。如果你想記住什麼是this,你可以將它分配給其他東西,傳統上me,selfthat。或者您使用bind。它也有助於壓縮,因爲me可以壓縮爲單字母變量,但只有this是神奇的,不能重命名。

+0

+1因爲它有助於混淆。 'var me = this'是我的寵物,而不是有人將自己的頭撞向計算機2個小時,因爲在'me!== this'的特殊情況下,他們可能會重構一些重複的代碼並減少這種方式縮小了尺寸。 – pllee 2014-09-11 17:12:35

3

它不會在服務表現幫助,但是當被調用的函數在不同的範圍內,你仍然有指針的預期目標

function someFunc() { 
    var me = this; 
    someElement.on("click", function() { 
     console.log(me); 
     console.log(this); 
    }); 
}; 

時,這是記錄在控制檯將顯示函數的調用者。在我登錄的情況下,它會顯示被點擊的元素。

+0

也許你可以舉一個例子來解釋代碼嗎? – Andy 2014-09-11 09:12:25

+1

這是'var me = this'的恰當用例,但僅僅爲了清楚這個原因,Ext代碼庫不會執行'var me = this'。他們這樣做是爲了幫助縮小,大部分時間完成「我」並不用於封閉。 – pllee 2014-09-11 17:16:49

+0

有趣的是,我不知道它被用來幫助縮小。從來沒有這樣想過。謝謝 – Enermis 2014-09-11 17:31:15

0

這不是性能相關的。但是通過這種方式,它聲明瞭一個var,可以在這個「Closure」中被其他成員訪問。注意到其他成員的「這個」不是由定義上下文決定的,「this」是誰調用函數的人。相反,變體範圍總是由定義上下文決定的。

+0

更像是評論而不是回答。 – 2014-09-11 09:34:05

相關問題