[英]JavaScript Double Dollar Sign
我理解在流行的JavaScript庫(如jQuery和Prototype)中使用(單個)美元符號。 我也理解PHP(變量變量)中雙美元符號的重要性。 Dean Edwards在他着名的addEvent() JavaScript函數中使用了雙美元符號。 這是一個包含使用雙美元符號的除外:
function addEvent(element, type, handler) {
// assign each event handler a unique ID
if (!handler.$$guid) handler.$$guid = addEvent.guid++;
// create a hash table of event types for the element
if (!element.events) element.events = {};
// create a hash table of event handlers for each element/event pair
var handlers = element.events[type];
if (!handlers) {
handlers = element.events[type] = {};
// store the existing event handler (if there is one)
if (element["on" + type]) {
handlers[0] = element["on" + type];
}
}
// store the event handler in the hash table
handlers[handler.$$guid] = handler;
// assign a global event handler to do all the work
element["on" + type] = handleEvent;
};
// a counter used to create unique IDs
addEvent.guid = 1;
根據我的閱讀,美元符號在JavaScript中僅對代碼生成工具具有正式意義,盡管由於美元符號在上述JavaScript庫中的廣泛使用,該標准在今天基本上被忽略。
任何人都可以對JavaScript中雙美元符號的使用有所了解嗎?
非常感謝!
我寫了這個函數。 :)
$$前綴不再具有任何特殊意義。 當包裝工受歡迎時,我用了一個符號。 Packer會使用此前綴縮短變量名稱。 如今,Packer會自動縮短變量名稱,因此這種表示法是多余的。
簡短的回答,$ sign是JavaScript中的有效標識符,所以你只是看着一堆丑陋的變量名。 ;)
實際上,它只是開發人員的命名約定。 出於所有意圖和目的,“ $$
”可能也是“ aa
”。
正如您所提到的,單個美元符號函數$()
已成為各種JavaScript庫中的幾乎標准。 “統治他們所有人的一個功能”,是嗎? 但請記住,這本身並不是JS本身所固有的。 它只是一個替換document.getElementById()
的函數名。
所以,有了這個說, $$
可能是任何東西。 哎呀,你甚至可以有這樣的功能:
function $$$$$$$$(){
//i've got dollar signs in my eyes!
}
換句話說,它只是一個變量/函數名稱 - 就像其他所有名稱一樣。
正如其他人所說, $$
是一個任意的標識符。
JavaScript工具包MochiKit保留了一個由相同標識的函數來使用CSS選擇器語法選擇元素 ,就像jQuery一樣,除了不將所有匹配元素包裝在特殊對象中。
所以,是的 - 它本身並沒有什么特別之處。
據我所知,美元符號只是一個可以在變量名中使用的常規字符。 這可能是一種慣例,表示不應該被混淆的財產。
我的猜測是作者使用$$guid
來避免與現有的屬性名稱發生沖突。 他可能已經使用了__guid
或類似的東西。
雙美元符號在以下術語中引用 -
//getElementById
function $$(id){
return document.getElementById(id);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.