-
자바스크립트 prototype 이란 무엇일까?Javascript/JS 문법 2023. 2. 18. 19:08
JavaScript는 흔히 프로토타입 기반 언어(prototype-based language)라 불립니다.
모든 객체타입의 자료형(객체, 함수 ,배열)들은 메소드와 속성들을 상속 받기 위해프로토타입 객체(prototype object)를 가진다는 의미입니다.
무슨 말인지 이해가 안되니 조금 더 쉽게 생각해봅시다.아래 두 문장은 동일하게 [ 4 , 5 , 1 ] 이라는 배열을 생성하는 방식입니다.
const arr = [4,5,1] const arr = new Array(4,5,1)
그런데 우리는 sort() , 나 length 라는 메소드를 집어넣어 둔 적이 없습니다.
console.log(arr.sort()) // [1,4,5] console.log(arr.length) // 3
그럼에도 불구하고 sort 나 length 가 작동하는 이유는
바로 Array 라는 자료형의 prototype 이 이러한 메소드를 소유하고 있기 때문입니다. ( 상속해줌 )Array.prototype.sort() , Array.prototype.length()
🔥 Array 라는 자료형에 내가 만든 메소드도 추가하는 방법은?
const arr = [4,5,1] Array.prototype.showMe = function () { console.log(this[0]) //this 란 해당 메소드가 속한 객체를 의미합니다. //그렇다면 여기서 객체는 [4,5,1] 이 되겠죠? //그래서 this[0]은 4가 되는 것입니다. } arr.showMe() //4가 출력되게 된답니다.
'Javascript > JS 문법' 카테고리의 다른 글
이벤트 버블링과 캡쳐링 , 이유와 방지법은 ? (0) 2023.03.21 javascript JSON 메소드를 알아보자! (0) 2023.03.10 ES6 문법 Array 메소드 map, filter, find, reduce 한번에 정리! (0) 2023.03.09 객체지향 Class 문법 공부하기 : 자바스크립트 js (0) 2023.02.18 Javascript 화살표 함수 4가지 표현 방식 (0) 2023.02.13