2009-09-23 6 views
37

jQuery 및 Prototype과 같은 널리 사용되는 JavaScript 라이브러리에서 (단일) 달러 기호 사용을 이해합니다. 또한 PHP (가변 변수)에서 이중 달러 기호의 중요성을 이해합니다. 딘 에드워즈는 유명한 더블 달러 기호 addEvent() JavaScript 기능을 사용합니다. 그 기준은 크게 인해 오늘을 무시하고 있지만,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로 이중 달러 기호를 사용하는 사람이라면 누구에게 알려줄 수 있습니까?

대단히 감사합니다.

+1

'addEvent'가 IE에서 체처럼 누출 나에게 보인다. – kangax

답변

74

이 기능을 작성했습니다. :)

더 이상 $$ 접두어에는 특별한 의미가 없습니다. 포장업자가 인기를 얻었을 때 내가 사용했던 것은 표기법이었다. Packer는 변수 이름을이 접두사로 줄입니다. 요즘 Packer는 자동으로 변수 이름을 단축하여 표기법이 중복됩니다.

간단히 대답하자면, $ 기호는 JavaScript에서 유효한 식별자이므로 여러분은 추한 변수 이름을보고 있습니다.;)

+8

권위있는 답변을 주셔서 감사합니다 ... 말의 입에서 듣는 것이 좋으므로 말하십시오! – NewToThis

3

제가 아는 한, 달러 기호는 변수 이름에 사용할 수있는 일반 문자 일뿐입니다. 주위를 어지럽히 지 말아야 할 자산을 의미하는 관습이 될 수 있습니다.

내 생각에 저자는 기존 속성 이름과의 충돌을 피하기 위해 $$guid을 사용했습니다. 아마도 그는 __guid 또는 그와 비슷한 것을 대신 사용할 수있었습니다.

20

글쎄, 개발자의 명명 규칙 일뿐입니다. "$$"은 "aa"일 수 있으며, 모든 의도와 목적을 위해 사용될 수 있습니다.

앞서 언급 한 것처럼 단일 달러 기호 기능 $()은 다양한 JavaScript 라이브러리에서 거의 표준이되었습니다. "그들 모두를 통치하는 하나의 기능"이라고? 그러나 JS 자체에는 고유 한 것이 아닙니다. 그것은 단지 document.getElementById()을 대체하기 위해 잡힌 함수 이름입니다.

그래서, 그 말로는 $$이 될 수 있습니다. 그냥 변수/함수 이름 만 같은 모든 나머지의, 즉

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

: 지옥, 당신도이 같은 기능을 가질 수있다.

+0

위대한 .. 그 이상이 없다는 것을 확인해 주셔서 감사합니다! – NewToThis

6

다른 사람들과 마찬가지로 $$은 임의의 식별자입니다.

JavaScript 툴킷 MochiKit은 과 동일하게 식별되는 기능을 예약합니다.이 기능은 jQuery와 매우 유사하지만 특수 객체에 일치하는 요소를 모두 래핑하지 않는 경우는 예외입니다.

네, 그렇습니다. 특히 그 자체만으로는 특별하지 않습니다.

+6

나는 왜 * & @ # $ !!를 알고 싶다. 사람들은 내게이 문제에 대해 투표를하고 있습니다. 만약 당신이 다운 투표를한다면, 적어도 언급 할만 큼 좋을 것입니다. –

1

더블 달러 기호는 다음과 같은 측면에서 참조 -

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

잘자요. 이것은 내가 찾고 있었던 것입니다 ...이 정의는 어디에 있습니까? 모질라 개발자 네트워크 (Mozilla Developer Network)의 어딘가에 대한 참조가 있습니까? – zipzit

관련 문제