2012-02-23 2 views
0

자바 스크립트에서 배열 표기법을 보았고 어떤 방법으로 작성하는 것이 더 빠르고 더 좋은지 궁금했습니다. 두 번째 버전은 읽기가 더 어려울 것이라고 생각하지만 그 이점은 있습니까? 아니면 누군가가 메서드를 호출하는이 방법을 사용합니까? 아니면 그들의 속도와 관련하여 차이가 있습니까?배열 표기법 또는 .method() - 속도가 더 빠릅니까?

  • $('#myContainer')['addClass']("active");

  • $('#myContainer').addClass("active");

나는 그에게 두 번째 방법을 수행하는 데 사용하지만, 첫 번째 방법 빨리 또는 첫 번째 버전을 사용하는 다른 이점이있다입니까?

답변

6

JSPerf에, 루프에 초점 코드를 최적화 다음 반환 한에 따르면 http://jsperf.com/brackets-vs-dot-notation

는 브래킷 표기법은 빠른 일부 브라우저입니다.

이것은 미세 최적화의 일종으로 을 피해야합니다.이 가장 편안한 느낌을주는 표기법을 선택하십시오.

+0

linkin에 감사드립니다! –

+0

테스트는 그다지 관련이 없으며 함수 호출이 아니라 객체 속성 액세스 용입니다. 이 테스트는 http://jsperf.com/brackets-vs-dot-notation/2에서 jQuery가 어떻게 오브젝트를보다 충실하게 생성 하는지를 모방하고,이 경우 더 빠른 '.'을 보여줍니다. – Ryan

+0

아, 글쎄, 파이어 폭스 10에 분명히 있지 않다. :) – Ryan

3

아니요, 알 수없는 속성에 동적으로 액세스하거나 속성에 특수 문자가 포함되어있는 경우 첫 번째 버전이 사용됩니다. 대괄호 표기법을 사용하면 코드 작성이 어려워지고, 코드를 작성하기가 어려워지고, 실행하기가 어렵습니다. 하지 마.

또한, 추한 :


추신입니다 대괄호 표기법은 마법 같은 jQuery 기능이 아닙니다. 그것은 JavaScript의 일부입니다.

+0

네, 분명히 추악합니다. D 또한 나중에 코드를 이해하고 이것이 가능하다는 것을 모르는 사람들을 위해서! –

1

코드를 실행하는 자바 스크립트 엔진에 따라 다르기는하지만 둘 다 정확히 동일한 코드로 컴파일되므로 실제로는 의 성능 차이가 발생합니다. 성능 차이가 있습니다.

하지 이와 같은 사소한 것들 :

+0

그래, 코드를 최적화하지 않아서 나는 이것이 어떤 방식 으로든 본 적이 없기 때문에 이것이 "일반적인"방법인지 궁금해했다. –

관련 문제