6. 클래스의 인스턴스 생성 과정new 연산자와 함께 클래스를 호출하며 클래스의 내부 메서드 [[Construct]](constructor)가 호출된다. 1. 인스턴스 생성과 this 바인딩new 연산자와 함깨 클래스를 호출하며 constructor의 내부 코드가 실행되기 전에 암묵적으로 빈 객체를 생성하며 이 빈 객체가 클래스가 생성한 인스턴스이다. 이때 클래스가 생성한 인스턴스의 프로토타입으로 클래스의 prototype 프로퍼티가 가리키는 객체가 설정되며 인스턴스는 this에 바인딩된다. 따라서 constructor 내부의 this는 클래스가 생성한 인스턴스를 가리킨다. 2. 인스턴스 초기화 constructor의 내부 코드가 실행되어 this에 바인딩되어 있는 인스턴스에 프로퍼티를 추가하고 cons..
클래스
JS의 클래스JS는 프로토타입 기반 객체지향 언어다. 다른 객체지향 언어와의 차이점은 있지만 JS는 강력한 객체지향 프로그래밍 능력을 갖고있다. 특히 JS는 클래스 없이 객체지향 프로그래밍을 구현할 수 있는 프로토타입 기반 객체지향 언어이다.// ES5 생성자 함수var Person = (function () { // 생성자 함수 function Person(name) { this.name = name; } // 프로토타입 메서드 Person.prototype.sayHi = function () { console.log('Hi! My name is ' + this.name); }; // 생성자 함수 반환 return Person;}());// 인스턴스 생성var me = new ..