목록자바스크립트 (2)
코딩쌀롱
메서드 오버라이드 const Person = function (name) { this.name = name; }; Person.prototype.getName = function () { return this.name; }; const iu = new Person('지금'); iu.getName = function () { return '바로 ' + this.name; }; console.log(iu.getName()); // 바로 지금 prototype에도 getName 메서드가 있고, 인스턴스인 iu에도 getName 메서드가 있다. iu.getName()을 호출하면 어떤 메서드를 실행할까? 자바스크립트 엔진이 메서드를 찾는 방식은 가장 가까운 대상인 자신의 프로퍼티를 검색하고, 없으면 그 다음으로 ..
자바스크립트는 프로토타입 기반 언어이다. 클래스 기반 언어에서는 '상속'을 사용하지만 프로토타입 기반 언어에서는 어떤 객체를 원형(prototype)으로 삼고 이를 복제(참조)함으로써 상속과 비슷한 효과를 얻는다. Constructor, prototype, instance 프로토타입을 도식으로 추상화 해본다면, const instance = new Constructor(); 1. 어떤 생성자 함수(Constructor)를 new 연산자와 함께 호출하면 2. Constructor에서 정의된 내용을 바탕으로 새로운 인스턴스(instance)가 생성된다. 3. 이때 instance에는 __proto__라는 프로퍼티가 자동으로 부여되는데, 4. 이 프로퍼티는 Constructor의 prototype이라는 프로퍼..