日期:2014-05-16  浏览次数:20395 次

JS库Mootools的Class类之二关于implements 高级篇

???这篇是高级用法,主要是讲:如果你在实现类(实现基类的类)中声明和基类相同的属性或者方法的话,

实现类的方法或者函数,会被基类取代掉的。很有意思,动手实验下哦
?

  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);

?