Extjs中使用extend(js继承) 的代码
程序员文章站
2022-06-24 18:47:01
注:抄<深入浅出extjs>书 传统的js实现继承操作为: 一:定义一个父类 复制代码 代码如下: var baseclass = function(){ //...
注:抄<深入浅出extjs>书
传统的js实现继承操作为:
一:定义一个父类
var baseclass = function(){
//.....
};
baseclass.prototype.somemethod = function(){
//.....
};
baseclass.prototype.overridenmethod = function(){
//....
}
为baseclass定义两个函数somemethod 和overridenmethod ,,然后定义一个subclass子类,可以直接从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类获得baseclass中的所有属性和函数。这样就实现了继承。在此之后我们就可以操作subclass的prototype,为子类添加新的函数或者覆写父类的同名函数。
在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);就可以直接调用父类的构造函数。这个函数的第一个参数总是this, 以确保父类的构造函数在子类的作用域里工作。
如果父类的构造函数需要传入参数,我们也就可以将所需要的参数直接传给它,如:
subclass.superclass.costructor.call(this, config);
这样我们就得到了一个继承了父类的所有属性和函数的子类。
传统的js实现继承操作为:
一:定义一个父类
复制代码 代码如下:
var baseclass = function(){
//.....
};
baseclass.prototype.somemethod = function(){
//.....
};
baseclass.prototype.overridenmethod = function(){
//....
}
为baseclass定义两个函数somemethod 和overridenmethod ,,然后定义一个subclass子类,可以直接从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类获得baseclass中的所有属性和函数。这样就实现了继承。在此之后我们就可以操作subclass的prototype,为子类添加新的函数或者覆写父类的同名函数。
在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);就可以直接调用父类的构造函数。这个函数的第一个参数总是this, 以确保父类的构造函数在子类的作用域里工作。
如果父类的构造函数需要传入参数,我们也就可以将所需要的参数直接传给它,如:
subclass.superclass.costructor.call(this, config);
这样我们就得到了一个继承了父类的所有属性和函数的子类。
上一篇: 设计模式学习
下一篇: 用一个成语来形容我刚才的那个动作