Javascript performance -Scope chaining-
HTML5 & CSS&Javascript javascript performance, javascript scope chaining, scope chaining View Comments
보통 function 안에 무심코 document 객체와 같은 global에 선언된 객체를 사용 하게 됩니다. 하지만 이러한 방신은 socpe chaining이라는 기법(배열) 검색을 하게 됩니다. 당연히 현재 function과 멀리 떨어진 객체를 사용하게 되면 더욱 더 많은 검색을 하기 때문에 성능이 떨어지게 됩니다.
따라서 documnet처럼 global 객체를 사용하게 될 경우에는 간단한 지역변수(var)로 선언하여 사용 해야 합니다. 그렇게 되면 Activation object(현재 객체)에 저장된 변수를 사용하기 때문에 Socpe chaining이 일어 나지 않습니다. 이러한 방법으로 하면 좀 더 성능을 향상 시킬수 있습니다.
-보조 설명 with-
with는 간편하고 한눈에 보기에는 Activation object에서 참조하는 것처럼 보이지만 사실은 with object가 생성이 되게 됩니다. 그래서 Activation object(현재객체)에 선언된 지역변수(var)를 참조 할때도 Socpe chaining이 일어 나기 때문에 성능에 부담을 줍니다. 될 수 있으면 쓰지 않는게 좋습니다.
따라서 with(){} 안에서 var a를 참조 할때도 Scope chaining이 일어 납니다.
따라서 documnet처럼 global 객체를 사용하게 될 경우에는 간단한 지역변수(var)로 선언하여 사용 해야 합니다. 그렇게 되면 Activation object(현재 객체)에 저장된 변수를 사용하기 때문에 Socpe chaining이 일어 나지 않습니다. 이러한 방법으로 하면 좀 더 성능을 향상 시킬수 있습니다.
-보조 설명 with-
fucntion Activation(){
var a = 1;
with(.....){
alert(a);
}
}
with는 간편하고 한눈에 보기에는 Activation object에서 참조하는 것처럼 보이지만 사실은 with object가 생성이 되게 됩니다. 그래서 Activation object(현재객체)에 선언된 지역변수(var)를 참조 할때도 Socpe chaining이 일어 나기 때문에 성능에 부담을 줍니다. 될 수 있으면 쓰지 않는게 좋습니다.
따라서 with(){} 안에서 var a를 참조 할때도 Scope chaining이 일어 납니다.
-소스코드-
'HTML5 & CSS&Javascript' 카테고리의 다른 글
| Javascript performance -Scope chaining- (0) | 2011/11/17 |
|---|---|
| Javascript 객체 Dependency injection(인젝션) 하기 (2) | 2011/11/16 |
| 2. Javascript performance 향상 기법 Cache (0) | 2011/10/26 |
| 1. Javascript performance 향상 기법 Cache (0) | 2011/10/21 |
| 자바스크립트 패턴 정의 (0) | 2011/07/07 |
| 자바스크립트 크로스브라우징과 상관없는 함수 (0) | 2011/07/07 |
Twitter
Facebook
Flickr
RSS

back to top
Recent Comments