참고: 책
에서 복사됨 전통적인 js 구현 상속 작업은 다음과 같습니다.
1: 상위 클래스 정의
var BaseClass = function(){
//.....
}
BaseClass.prototype.someMethod = function( ){
//....
}
BaseClass.prototype.overridenMethod = function(){
//....
}
BaseClass에 대해 someMethod 및 overridenMethod 두 함수를 정의한 다음 BaseClass에서 모든 속성과 함수를 직접 상속할 수 있는 하위 클래스 하위 클래스를 정의합니다.
var subClass = function(){
BaseClass.call(this)
}
subClass.prototype = new BaseClass( );
subClass.prototype.newMethod = function(){
//...
}
subClass.prototype.overridenMethod = function(){
//.. 🎜>}
위 코드에서 subClass의 생성자는 먼저 BaseClass의 생성자를 호출하여 데이터를 초기화한 다음 subClass.prototype = new BaseClass(); 명령문을 사용하여 subClass를 만듭니다. class BaseClass의 모든 속성과 함수를 가져옵니다. 이런 식으로 상속이 이루어집니다. 그런 다음 하위 클래스의 프로토타입을 작동하고 하위 클래스에 새 함수를 추가하거나 상위 클래스의 동일한 이름 함수를 재정의할 수 있습니다.
상속 기능을 구현하기 위해 EXT에서 Ext.extend() 함수를 사용하는 방법:
var subClass = function(){
subClass.superclass.costructor.call(this)
};
Ext.extend(subClass, BaseClass, {
newMethod: function(){
//...
},
overridenMethod: function(){
//....
}
}) ;
Ext.extend() 함수에서는 subClass.superclass.costructor.call(this);을 통해 상위 클래스의 생성자를 직접 호출할 수 있습니다. 이 함수의 첫 번째 매개 변수는 항상 부모 클래스의 생성자가 자식 클래스의 범위에서 작동하도록 보장하는 것입니다.
상위 클래스의 생성자가 매개변수를 전달해야 하는 경우 다음과 같이 필수 매개변수를 직접 전달할 수 있습니다.
subClass.superclass.costructor.call(this, config)
이 방법으로 상위 클래스의 모든 속성과 기능을 상속하는 하위 클래스를 얻습니다.