日期:2014-05-16 浏览次数:20494 次
???这篇是高级用法,主要是讲:如果你在实现类(实现基类的类)中声明和基类相同的属性或者方法的话,
实现类的方法或者函数,会被基类取代掉的。很有意思,动手实验下哦
?
var BaseClass = new Class({
initialize : function(input_value){
this.inputValue = input_value;
},
testFunction : function(){
alert(" this is a base class function");
},
definedValue : " Defined in BaseClasss"
});
var ImpleClass = new Class({
Implements : BaseClass,
//下面的这些功能都在BaseClass中定义了
definedValue : 'Defined in ImpleClass',
testFuncton : function(){
alert('this function is defined in ImpleClass');
},
//下面这些都是自定义的
anotherDefinedValue : ' another value in ImpleClass',
anotherTestFunction : function(){
alert('another function in ImpleClass');
}
});
?
?
???? 请注意,在实现类中重新定义了testFunction和definedVariable,
???? 就像我们添加新的函数和变量一样。特别需要注意的是:如果你想在实现类中定义
???? 一个已经在基类中定义了的函数或者变量,基类中的定义将会取代实现类中的定义。
??? 如果不明白,看看下面的例子就知道了。
var impleClass = new ImpleClass();
impleClass.testFunction();
alert("impleClass.testValue:"+impleClass.definedValue);
//显示自定义的
impleClass.anotherTestFunction();
alert("impleClass.testValue:"+impleClass.anotherDefinedValue);
?