2014-07-11 48 views
1

是否可以使用var $ this = $(this);還是有更好的/更被接受的方式?

我問的唯一原因是我的文本編輯器似乎並不喜歡它。我假設這是因爲$可以用於其他語言的東西而不是Jquery。

我的代碼看起來是這樣的:如果這屬於代碼審查,但我並沒有得到太大的幫助有

var $this; 
$('.element').each(function() { 
    $this = $(this); 
}); 

道歉。

+1

它是可以接受的。然而重要的問題在初始化之後你要用'$ this'做什麼?另外,您正在使用_ID selector_,因此使用'.each()'記住ID必須是唯一的。 – Satpal

+0

是的,可以接受。 – swfong

+0

我不推薦做它的配對,任何叫做'this'的東西都在某種範圍內使用,你的'$(this)'var在'.each()'函數中被使用,你將它帶到給每個'範圍並給它一個'$ this'這個名稱,稍後在你的代碼中你會看到你的這個var,並且可能把它誤認爲你所在的範圍的'this' var,這會使它更容易處理,如果你只是稱之爲別的 – Banana

回答

5

你的代碼片段看起來更像是一個錯誤,而不是代碼風格的例子。我會假設你的意思是:

​​

是的,這是完全可以接受的。你可以see here

變量名必須以字母開頭

變量名也可以以$ _(1)(但我們不會使用它)


開始

至於目標:這是一個可讀性問題 - 許多使用jQuery的人發現,使用$name前綴他們的jQuery對象變量更容易閱讀。例如,這使得它更容易一眼看出什麼是jQuery對象,什麼是不:

var $this = $(this); 
var $myVariable = $(".class1.class2:not(#exlusionId)"); 

一般來說你只有當你封閉功能的瓶蓋內使用它需要另一個參考this。如上所述,更常見的是使用較長的,可能不重要的選擇器。當然,以上只是作爲理解爲:

var element = $(this); 
var myVariable = $(".class1.class2:not(#exlusionId)"); 

它主要是你去


在其成爲一個令人討厭的情況下,哪種方式的習慣和/或個人喜好的事情是,當你有非JavaScript在混合例如,這一切都太經常可以看到用PHP解析網頁的源文件,這個討厭的,討厭的結構啓用:

var myJavascriptVariable = javascriptFunctionCall(<%php callSomePhp($phpVariables); %>); 

不要混用dollarcase PREF ix在那裏,因爲它很快變成很難很難看到發生了什麼事情。或者甚至更​​好,不要在你的JavaScript在混合PHP所有


(1)_或有時__(雙下劃線)前綴通常用作前綴表示內「私人」領域物體

+0

謝謝你的回答。而其他人在技術上是正確的,你已經很好地解釋了它。 – Jake

+2

@Jake:如果你只是想知道'var $ this = $(this);'是否有效*語法*,你可以執行代碼。 –

+0

@FelixKling目前我的代碼是非常基本的,當它更復雜時,它可能會導致一個問題,這個答案已經解釋了。 – Jake

1

這是可以接受的,但不是您使用它的方式。

這是正確的做法:

$('.element').each(function() { 
    var $this = $(this); 
}); 

也就是說,聲明變量功能,而且永遠不應該跨職能共享。

相關問題