(2) 원형 기반 클래스 계승
6325 단어 계승
var Animal = function(){
this.init(this,arguments);
};
//init
Animal.prototype.init = function(color){
this.color = color;
};
Animal.prototype.breath = function(){
console.log("breath");
};
var Dog = function(){};
Dog.prototype = new Animal();
Dog.prototype.init("white");
Dog.prototype.getColor = function(){
console.log(this.color);
};
var dog = new Dog();
dog.breath();//breath
dog.getColor();//white
(1) Dog류 계승 Animal류, 이런 계승은 원형 계승에 속한다. 즉, Dog의 원형 안에 Animal류가 있는 실례를 말한다.
2 version 2 클래스 라이브러리 상속 추가
var Class = function(parent){
var klass = function(){
this.init.apply(this,arguments);
};
if(parent){
var subClass = function(){};
subClass.prototype = parent.prototype;
klass.prototype = new subClass();
}
//init
klass.prototype.init = function(){};
klass.fn = klass.prototype;
klass.fn.parent = klass;
//add class property
klass.extend = function(obj){
var extended = obj.extended;
for(var i in obj){
klass[i] = obj[i];
}
if(extended) extended(klass);
};
//add prototype property
klass.include = function(obj){
var included = obj.included;
for(var i in obj){
klass.fn[i] = obj[i];
}
if(included) included(klass);
};
return klass;
};
var Animal = new Class();
Animal.include({
breath:function(){
console.log('breath');
}
});
var Cat = new Class(Animal);
var tommy = new Cat();
tommy.breath();
이 코드를 자세히 볼 수 있어요.
if(parent){
var subClass = function(){};
subClass.prototype = parent.prototype;
klass.prototype = new subClass();
}
다시 Animal이라는 function을 돌려보내고 국부적인subClass의 원형을 Animal의 원형으로 가리키고,klass의 원형을subClass의 실례로 가리키며 원형 오염을 방지합니다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C++/java 계승 클래스의 다태적 상세 및 실례 코드C++/java 계승 클래스의 다태적 상세 정보 C++와 자바를 배운 사람들은 모두 알고 있다. 그들 둘은 모두 대상을 대상으로 프로그래밍을 할 수 있기 때문에 대상을 대상으로 프로그래밍하는 세 가지 특성은 바로 봉...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.