반응형
글 작성 동기
자바스크립트 문법 관련해서 모르는 게 있을 때 mdn 사이트를 주로 이용하는 편인데, mdn에서 arrays.sort에 대하여 검색하면 Array.prototype.sort()라는 문서가 나옵니다.
이때 prototype이 왜 사이에 껴있는지 궁금하여 공부했습니다.(링크)
예시를 통하여 이해하였습니다.
function A(){
this.abc = function() {
return 5;
}
}
const temp1 = new A();
const temp2 = new A();
console.log(temp1 === temp2); //false
console.log(temp1.abc === temp2.abc); //false
function A(){
}
A.prototype.abc = function(){
return 5;
}
const temp1 = new A();
const temp2 = new A();
console.log(temp1 === temp2); //false
console.log(temp1.abc === temp2.abc); //true
위의 예시에서 abc메서드를 다르다고 판단하고, 밑에 예시에서는 abc메서드를 같게 판단합니다.
즉, prototype이 아닌 경우에는 메서드를 중복 생성하는 것을 알 수 있고, prototype인 경우 메서드를 공유하여 사용하고 있음을 알 수 있었습니다.
왜 그럴까?
prototype을 지정해 놓으면 해당 생성자 함수가 만드는 모든 인스턴스는 상속을 받을 수 있어 메서드를 공유할 수 있었습니다.
다시 본론으로...
Arrays.prototype.sort() 안에 prototype이 껴 있는 이유는, 정렬할 때마다 해당 메서드를 반복 생성하지 않기 위해서였습니다.
반응형
'공부 정리 > 웹(Web)' 카테고리의 다른 글
JS Primitive type checking (0) | 2022.03.10 |
---|---|
JS IIFE (0) | 2022.03.08 |
JS Falsy값과 null병합 연산자 (0) | 2022.02.17 |
Js 값 할당했을 때 메모리 (0) | 2022.02.16 |
Js 함수 vs 메서드 (0) | 2022.02.14 |
댓글