JavaScript双美元符号

我理解在stream行的JavaScript库(如jQuery和Prototype)中使用(单)美元符号。 我也了解PHP中的双美元符号(variables)的意义。 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代码生成工具中只有正式的意义,尽pipe由于前面提到的JavaScript库中美元符号的广泛使用,这个标准在很大程度上被忽略了。

任何人都可以在JavaScript中使用这个双美元符号吗?

非常感谢!

我写了这个函数。 🙂

对$$前缀不再有任何特别的意义。 当包装工受欢迎的时候,我用这个符号。 Packer会用这个前缀缩短variables名称。 现在,Packer会自动缩短variables名称,所以这个符号是多余的。

简而言之,$符号是JavaScript中的一个有效的标识符,所以你只是看着一堆丑陋的variables名称。 ;)

实际上,这只是开发者的命名约定。 对于所有意图和目的,“ $$ ”可能就是“ aa ”。

正如您所提到的,单个美元符号函数$()在各种JavaScript库中几乎成为标准。 “一个统治他们的function”,呃? 但请记住,这并不是JS本身的内在。 这只是一个函数名称,用来取代document.getElementById()

所以,就这样说, $$可能是任何东西。 哎呀,你甚至可以有这样的function:

 function $$$$$$$$(){ //i've got dollar signs in my eyes! } 

换句话说,它只是一个variables/函数名称,就像所有其他的一样。

正如其他人所说, $$是一个任意的标识符。

JavaScript工具包MochiKit保留了一个同样用CSSselect器语法select元素的function,就像jQuery一样,除了没有将所有的匹配元素包装在一个特殊的对象中。

所以,是的 – 没有什么特别的,本身。

据我所知,美元符号只是一个可以在variables名中使用的常规字符。 这可能是一个公约,意味着一个不应该混淆的财产。

我的猜测是作者使用$$guid来避免与现有的属性名称冲突。 他可能已经使用__guid或类似的东西。

双美元符号在以下术语中被引用 –

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