본문 바로가기
공부 정리/웹(Web)

JS Arrays.prototype 의 의미

by 경적필패. 2022. 2. 23.
반응형

글 작성 동기

자바스크립트 문법 관련해서 모르는 게 있을 때 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

댓글