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