객체를 생성합니다 :
새로운 운영자 : 기능을 수행 1. 자동으로 개체가 비어 반환이 암시 적에게에 바인딩 2. 3. 다른 객체 4.이 주제 빈 빈 객체를 생성
원형 체인 : 체인 길이 제한, 목적 (NULL로 종점)
VAR OBJ = 새 개체 ();
VAR 탭 = 함수 () {}
var에 TAB1 새로운 탭을 () =;
1. 객체의 프로토 타입 : OBJ .__ proto__
2. 액세스 프로토 타입 생성자 : Tab.prototype
셋째 原型 链 : TAB1 .__ proto__ (TAB1 때문에 .__ __) .__ proto__ ((TAB1 때문에 .__ __) .__ proto__) .__ proto__ 【Tab.prototype 개체 널】
4. 프로토 타입 체인의 끝은 다음과 같습니다 널 (놀랄되지 않습니다)
타입 생성자를 결정 :
tab1.__proto__.constructor.name // 탭
tab1.__proto__.__proto__.constructor.name // 객체
TAB1 .__ 프로토 __.__ proto__ .__ proto__ // 널 Object.prototype에 .__ proto__ == 널 (null)
공장 패턴 : 오브젝트의 제조와 같은 제품, 기능 오브젝트를 반환
기능 createObj (이름, 나이) {
VAR OBJ = 새 개체 ();
obj.name = 이름;
obj.age = 나이;
OBJ 반환;
}
생성자 모드 :
방법 A : VAR OBJ = 새 개체 (); // 빌드 네이티브 오브젝트
방법 2 :
기능 제품 (이름) {
// var에 OBJ = 새 개체 (); 암시 빈 객체를 만들고이 객체는 빈에 바인딩
this.name 이름을 =;
this.num = 0;
이 반환 //, 이것의 암시 적 수익을
};
Product.prototype.add = 함수 () {// Product.prototype 공용 공간을
++ this.num;
CONSOLE.LOG (this.num);
};
// Product.prototype 객체는, 기본은 하나의 속성 생성자, 당신은 개체에 새 속성을 추가 할 수 있습니다
Product.prototype.constructor === 제품 // 사실 모든 개체의이 생성자가 어떤 함수 프로토 타입 객체는
// 프로토 타입 생성자를 가져 오기 : Product.prototype을;
var에 prod1 새로운 제품을 () =;
var에 prod2 새로운 제품을 () =;
// Object.prototype에 .__ proto_ === 널 (null)
// 클래스 상속, day03에 --- 기존 클래스의 기초 (데이터 구조를 공유하기위한 클래스 메커니즘) 새로운 클래스를 정의
생성자 함수 원형 정의 유전 특성 및 구성에 정의 된 방법 ---> 속성 및 방법 : // 클래스 상속은 두 부분을 포함한다
// 모델링 새로운 오퍼레이터 ---- myNew 함수
기능 myNew (생성자, ... 인수) {-> 매개 변수 : 생성자의 매개 변수와
} {= OBJ하자;
constructor.call (OBJ ... ARG);
OBJ .__ proto__ = constructor.prototype;
OBJ 반환;
}