1. function 인스턴스 기준, function 인스턴스 생성
function 인트너스 기준
- function 구분
- 빌트인 Function 오브젝트
- function 오브젝트: function 키워드로 생성
- function 인스턴스: new연산자로 생성
- function 오브젝트도 인스턴스
- 빌트인 FUnction 오브젝트로 생성하기 때문입니다.
- 성격적으로는 인스턴스이지만 new연산자로 생성한 인스턴스와 구분하기위해 function 오브젝트라 칭합니다.
- new 연산자로 생성하는 인스턴스는 일반적으로 prototype에 프로퍼티를 작성합니다.
function 인스턴스 생성
function Book(point){
this.point = point;
};
Book.prototype.getPoint = function(){
return this.point + 200;
};
var obj = new Book(100);
console.log(obj.point);//100
console.log(obj.getPoint());//300
- function Book(point){...}
- Book 오브젝트를 생성합니다.
- Book.prototype이 만들어집니다.
- Book.prototype.getPoint = function(){}
- Book.prototype에 getPoint를 연결하고 function(){}을 할당
- Book.prototype이 오브젝트이므로 프로퍼티를 연결할 수 있습니다.
- var obj = new Book(100);
- Book()을 실행하며 인스턴스를 생성하고 생성한 인스턴스에 point값을 설정합니다.
- Book.prototype에 연결된 프로퍼티를 생성한 인스턴스에 할당합니다.
- console.log(obj.point);
- obj 인스턴스에서 프로퍼티 이름으로 값을 구해 출력
- console.log(obj.getPoint());
- obj인스턴스의 메소드를 호출합니다.
- return this.point + 200; 에서 this가 obj인스턴스를 참조합니다.
- 함수/메소드 사용 기준
- Book(): 함수
- getPoint(): 메소드, prototype에 연결
2. 생성자 함수, 생성자 함수 실행 과정, 인스턴스 생성 과정