자바 script 의 계승 체 제 를 깊이 이해 하 는 12 가지 계승 모델 총화
원형 체인 법
예시:
Child.prototype = new Parent();
분류: 원형 구조 기 기반 계승 모델 을 사용 하 였 습 니 다.
* * 주의 * *:
원형 으로 만 계승 하 다.
실례:
Child.prototype = Parent.prototype;
분류: 구조 기 모드 를 바탕 으로 원형 대상 을 복제 하고 원형 체인 의 관계 가 없습니다. 모두 하나의 원형 대상 을 공유 하기 때 문 입 니 다 * * 주의 * *:
임시 구조 기
실례
function extend(Child,Parent) {
var F = function(){};
F.prototype = Parent.prototype;
Child.prototype = new F();
Child.prototype.constructor = Child;
Child.uber = Parent.prototype;
}
분류: 구조 기 모드 를 바탕 으로 원형 체인 을 사 용 했 습 니 다 * * 주의 * *:
실례:
function extend2(Child,Parent) {
var p = Parent.prototype;
var c = Child.prototype;
for (var i in p) {
c[i] = p[i];
}
c.uber = p;
}
분류: 구조 기 모드 를 바탕 으로 속성 복사 모드 를 바탕 으로 원형 체인 을 사 용 했 습 니 다.
* * 주의 * *:
실례:
function extendCopy(p) {
var c = {};
for (var i in p) {
c[i] = p[i];
}
c.uber = p;
return c;
}
분류: 대상 기반 모드 속성 복사
* * 주의 * *:
실례:
function deepCopy(p, c) {
c = c || {};
for (var i in p) {
if (p.hasOwnProperty(i)) {
if (typeof p[i] === 'object') {
c[i] = Array.isArray(p[i]) ? [] : {};
deepCopy(p[i], c[i]);
} else {
c[i] = p[i];
}
}
}
return c;
}
분류: 대상 기반 모드 속성 복사
* * 주의 * *:
실례:
function object(o)
{
function F() {}
F.prototype = o;
return new F();
}
분류: 대상 기반 모델 사용 원형 체인 * * 주의 * *:
실례:
function objectPlus(o, stuff) {
var n;
function F() {}
F.prototype = o;
n = new F();
n.uber = o;
for (var i in stuff) {
n[i] = stuff[i];
}
return n;
}
분류: 대상 기반 작업 모드 원형 체인 속성 복사 모드 사용 * * 주의 * *
function multi() {
var n = {}, stuff,j = 0,
len = arguments.length;
for (j = 0; j
분류: 대상 기반 작업 모드 속성 복사 모드 * * 주의 * * *
기생 식 계승
실례:
function parasite(victim) {
var that = object(victim);
that.more = 1;
return that;
}
분류: 대상 기반 작업 모드 에서 원형 체인 사용 * * 주의 * *
실례:
function Child() {
Parent.apply(this,
arguments);
}
분류: 구조 함수 기반 모드
* * 주의 * *:
실례:
function Child() {
Parent.apply(this,arguments);
}
extend2(Child,Parent);
분류: 구조 기 모드 를 바탕 으로 원형 체인 속성 복사 사용 * * 주의 * *
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.