2011-03-27 5 views
0

난 그냥 궁금하지만, 내 생각은 내 변수가 문서의 "포인터"역할을하므로 스크립트는 문서를 다시 참조 할 필요가 없다는 것입니다.

+0

아니요, 차이가 없습니다. 제가 말할 수있는 한'document' 자체는 이미 포인터입니다. –

답변

1

가 자체 실행 익명 함수에 코드를 감싸고, 그 자체에 의해 변수

(function(doc) { 
    //code 
})(document); 

로 문서를 전달, 나는 그것을 할 수있는 개선을 볼 수 없습니다. 그러나 이것은 널리 사용되는 축소 기술입니다. minified, doc은 a와 같은 것으로 바뀌므로 코드가 doc.getElementsByTagName 예를 들어 사용할 때마다 a.getElementsByTagName이됩니다.

편집 : 빠른 예.

//Before minifying 
(function(document) { 
    var anchor = document.createElement('a'); 
    anchor.id = 'world'; 
    document.body.appendChild(anchor); 
    document.getElementById('world').innerText = 'Hello World'; 
})(document); 

//After minifying 
(function(a){var b=a.createElement("a");b.id="world";a.body.appendChild(b);a.getElementById("world").innerText="Hello World"})(document); 

문서가 어떻게 "a"로 바뀌 었는지 알 수 있으므로 매번 7자를 저장했습니다. 난독 화 코드를 작성하는 것은 권장되지 않으며, 코드를 배포하기 전에 축소 만해야합니다. 우수한 Closure Compiler

1

문서를 사용

축소 된 글로벌 목적이다. 다른 변수를 참조한 다음 문서에 직접 저장하는 대신 문서화하는 것이 더 빠를 수 있습니까? 그것은 비판적인 질문입니다.

1

변수에 재사용 될 값을 저장하는 것이 가치가 있습니다. Document은 이미 창에서 사용할 수 있으므로 좋지 않습니다. 일반적으로 최상위 수준 속성을 통해 사용할 수없는 document에 찾는 항목을 저장합니다. 이는 매번 플러그인을 찾는 것을 피하기 위해 플러그인이 편리하게 작동하는 DOM 요소에 대한 참조를 유지하려는 곳에 개발할 수있는 기능 또는 플러그인에서 특히 그렇습니다.