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); }