日期:2014-05-16 浏览次数:20381 次
???这篇是高级用法,主要是讲:如果你在实现类(实现基类的类)中声明和基类相同的属性或者方法的话,
实现类的方法或者函数,会被基类取代掉的。很有意思,动手实验下哦
?
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);
?