簡體   English   中英

帶有美元符號的Javascript函數聲明

[英]Javascript function declarations with a dollar sign

這個函數聲明對我沒有意義。 $ sign有什么作用?

function $(id) { return document.getElementById(id); }  

此外,此代碼干擾其他Javascript代碼。 如果我將其評論出來,那么我正在嘗試使用的其他Javascript代碼可以使用,但后來我失去了一些其他功能。

為什么它會干擾我的其他代碼。

$ sign有什么作用?

沒什么特別的。 它只是一個可以在變量/函數名稱中使用的字符。

有一種趨勢是使用$作為許多庫(包括Mootools,Prototype和jQuery)的網關函數的名稱。 這有兩個主要問題:

此外,此代碼干擾其他Javascript代碼。

據推測,其他東西正在使用一個名為$ then的變量。

你聲明一個名為$的函數包裝document.getElementById ,顯然是為了方便起見。 沒什么特別的。

參考哪些字符對JavaScript變量名有效?


至於干擾,可能還有另一個名為$全局變量,它正在被破壞。 請參閱jQuery

JavaScript變量可以開始(並且僅包括) $ (以及其他)。

以前, $僅為機器生成的變量添加。

這是我相信的規范,但后來被刪除了(不要引用我)。

美元符號被添加到專門用於代碼生成器和宏進程的語言中,因此如果您有機器編寫代碼,那么機器需要確信它們創建的變量不會與人類將要創建的變量沖突。 為了區分它們,我們將允許機器使用美元符號。 一些忍者發現了這一點並且認為哦,美元符號,我可以使用美元符號作為函數名稱,所以他們在那里做那個。 它看起來很愚蠢。 我的意思是,看一下帶有美元符號的程序。

資料來源:Douglas Crockford

如果它干擾了其他代碼,您可能正在使用使用此標識符的庫。 如果是這種情況,請查看該庫的無沖突模式(如果有的話)。

讓我猜一下:你使用的是jQuery還是原型?

$_是變量/函數名稱中的有效字符。 代碼與聲明function a(id) {return document.getElementById(id);}

它通常用作選擇元素的快捷方式,因為鍵入document.getElementById對於它的使用頻率來說太長了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM