프로토타입과 JavaScript의 생성자를 통한 메서드 정의의 성능 영향
JavaScript에는 공개 함수를 사용하여 "클래스"를 생성하기 위한 두 가지 접근 방식이 있습니다. 프로토타입이나 생성자를 사용합니다. 방법 1은 생성자를 통해 인스턴스에 함수를 할당하는 반면, 방법 2는 프로토타입을 활용하여 모든 인스턴스 간에 함수를 공유합니다.
방법 2가 종종 더 효율적이라고 주장되지만, 전용 인스턴스 변수의 인스턴스를 박탈하는 것은 상당한 단점이 있습니다. . 그러나 방법 1의 각 인스턴스에 대한 중복 함수 복사본 생성이 실제로 실제로 발생합니까?
JsPerf 벤치마크의 경험적 증거
JsPerf 벤치마킹은 방법 2(프로토타입) )는 실제로 방법 1(생성자)보다 성능이 뛰어납니다. 속도.
실용적 의미
이러한 차이는 벤치마크에서는 분명하지만 실제 애플리케이션과의 관련성은 의심스럽습니다. 상당한 수의 개체 인스턴스화(예: 프레임당 10,000개)가 있는 시나리오에서도 이 미세 최적화는 성능 병목 현상을 완화할 가능성이 낮습니다.
권장 사항
최적화하는 경우 성능이 중요하므로 프로토타입을 통해 메서드를 선언하는 것이 좋습니다. 그렇지 않은 경우 방법 1은 더 큰 유연성을 제공하고 일반적인 개체 지향 프로그래밍 규칙을 준수합니다. 또한 밑줄 접두사로 표시되는 개인 속성(예: _process())을 사용하면 캡슐화가 향상되고 직접 수정이 방지됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3