자바스크립트가 Prototype 기반 언어가 됨으로써 얻을 수 있는 이점은?
자바스크립트는 처음 설계될 당시 부터, 간단하고 쉬운 언어를 지향했다.
그렇기 때문에 기존의 언어들이 지향했던 Class와 같은 구조를 채택하는것 보다, Prototype 기반언어를 채택해서 좀 더 가볍게 하려는 철학때문에 Prototype 기반 언어를 채택하게 되었다.
어떻게 가벼워지냐하면,
function A() {}
A.prototype.hi = "hi";
위 코드가 있다고 해보자.
new A()
으로 생성된 모든 인스턴스는 hi
를 모두 복사하지 않는다.
왜냐하면 A라는 함수의 Prototype Object는 1개이고, hi
는 그 Prototype Object에 존재하기 때문이다.
즉, 1개의 Prototype을 공유하기 때문에 해당 hi
프로퍼티를 모든 인스턴스에 복사하지 않아도 된다.
그렇기 때문에 class기반 언어보다 확실히 가볍다는 이점이 있다.
하지만 하드웨어가 발전하면서 이정도 최적화는 실제 구동하는데 있어서, 의미있는 성능 변화를 가져오지 못한다.
이제는 과거에 자바스크립트 성능을 높이기 위해서 사용했던 프로토타입이었는데,
최근에는 오히려 다른 언어와의 차이점 때문에 자바스크립트를 이해하기 어렵게 만들고 사용법도 복잡해지는 결과를 낳은것 같기도 하다.
'개발 > FrontEnd Interview' 카테고리의 다른 글
Prototype으로 상속을 구현해보세요. (0) | 2021.08.22 |
---|---|
general function vs arrow function (0) | 2021.08.22 |
iframe 사용에 대해서 (0) | 2021.08.21 |
useLayoutEffect에 관하여 (0) | 2021.08.20 |
웹팩이 모든 자원을 모듈로 관리함으로써 얻을 수 있는 이점 (0) | 2021.08.20 |