2015-11-26 55 views
1

我發現一些奇怪的,我在這個項目的功能我目前工作:

Building.Widget.ClientIdV2 = function Building$Widget$ClientIdV2() { 
... 

是什麼意思$這裏的,什麼是這個功能的「名」意思是(Building $ Widget $ ClientIdV2)?我也見過... = function() {代碼至今..

謝謝。

+1

'$'可以用作任何JavaScript變量或函數或屬性名稱的一部分。它不代表'B'或'z'的意思。 – Pointy

+0

如果你不把它放在前面,它不是保留字符。 –

+3

@TonyWu:如果你把它放在前面,它不是保留字符。 JavaScript變量名稱可以以'$'開頭(因此jQuery和PrototypeJS自己使用它,只是'''或者PrototypeJS的情況'''','$$'和其他幾個)。 –

回答

4

美元符號沒有特別的意義。它只是一個你可以在標識符中使用的字符。

該函數的名稱可以用來從它自己的範圍內引用該函數(這對於遞歸函數可能很有用),並且會出現在像堆棧軌跡這樣的有用位置。

+0

我可以在函數本身內部使用對象的名稱(即在左側 - Building.Widget.ClientIdV2),否則它將不可訪問? – Dedyshka

+0

就像任何變量一樣,只要它沒有被函數內同名的變量所掩蓋,它就會在範圍內。像任何變量一樣,它可以被其他代碼覆蓋。然而,它只是一個變量,其值是函數。它不是函數名稱(這是該函數內部的一個功能)。 – Quentin

1

$只是您可以在標識符中使用的另一個字符,它沒有內在的特殊含義。它可能是Q_一樣容易。

在特定的例子中,原作者命名功能的方式,他們可以很容易地看到,它的Building對象的Widget對象上ClientIdV2功能。但這只是作者的慣例。這對於查看調用堆棧等非常有用。

1

它看起來像是某人的命名約定。你可以用Javascript變量名稱來放置任何你想要的東西。您應該嘗試在Javascript中找到一般命名約定,以防您對此感興趣(這會使您與其他開發人員的工作更容易)。

例如,有些人喜歡在$之前放置jQuery變量,這意味着他們可以在該選擇上鍊接函數。

1

在Javascript中,使用$就像字母或下劃線一樣在名稱中使用是完全有效的,因此在語法上它沒有什麼特別之處。認爲它經常被用來爲名稱提供額外的語義,例如。它可能表明一個變量對系統是特殊的(內部變量,全局等)。在你的情況下,我相信$表示對象層次結構。 $的使用只是傳統的。