2008-05-14

Extjs2.0---继承

关键字: extjs2.0---继承
Extjs2.0里通过Ext.extend方法实现继承

//父类定义
BaseClass = function(){
	//begin
	this.cry = function(){//this.不能丢
		alert("crying....");
	}
	//end
}

BaseClass.prototype.name="";
BaseClass.prototype.say = function(){
	alert("say parent");
}
BaseClass.prototype.talk = function(){
	alert("talk parent");
}
//子类定义
SubClass = function(){
	SubClass.superclass.constructor.call(this);//调用父类构造函数,也就是执行BaseClass里的begin--->end中间的代码。如果这行代码注释掉,则begin---->end中间的代码不会初始化,但是父类用prototype构造的属性和方法任然会初始化
	//js里子类实例化时是不会去自己调用父类的构造函数的
	this.walk = function(){//this.必须要加上,否则SubClass的实例对象没有办法引用到该walk方法
		alert("i'm warking");
	}
}
//继承,第3个参数{},覆盖或者扩展父类方法,该参数也可以不要
Ext.extend(SubClass,BaseClass,{
	say:function(){
		alert("overide say");
	},
	jump:function(){
		alert("jumping");
	}
	
});
var sb = new SubClass();
sb.say();//overide say
sb.walk();//i'm warking
sb.jump();//jumping
sb.talk();//talk parent
sb.cry();//crying....
评论
yunhaifeiwu 2008-08-01
Ext.extend(SubClass,BaseClass,{   
    say:function(){   
        alert("overide say");   
    },   
    jump:function(){   
        alert("jumping");   
    }   
       
});   


这句是EXT的继承语句,指示了SubClass继承于BaseClass。
ttitfly 2008-06-02
Ext.extend()函数的第2个参数不是指定了吗?
fish26273 2008-06-01
我没搞懂啊,了类定义部分,没有BaseClass出现,系统怎么知道你继承的是baseClass而不是别的?
发表评论

您还没有登录,请登录后发表评论

ttitfly
搜索本博客
我的相册
63e97aa5-d2de-33be-88c3-8f39d5279b8d-thumb
bbbb
共 3 张
存档
最新评论