JS庫Mootools的Class類之二關於implements 高級篇

這篇是高級用法,主要是講:如果你在實現類(實現基類的類)中聲明和基類相同的屬性或者方法的話,

實現類的方法或者函數,會被基類取代掉的。很有意思,動手實驗下哦
 

Js代碼 複製代碼
  1. var BaseClass = new Class({   
  2.   initialize : function(input_value){   
  3.    this.inputValue = input_value;   
  4.   },   
  5.   testFunction : function(){   
  6.    alert(" this is a base class function");   
  7.   },   
  8.   definedValue : " Defined in BaseClasss"  
  9.  });   
  10.  var ImpleClass = new Class({   
  11.   Implements : BaseClass,   
  12.   //下面的這些功能都在BaseClass中定義了   
  13.   definedValue : 'Defined in ImpleClass',   
  14.   testFuncton : function(){   
  15.    alert('this function is defined in ImpleClass');   
  16.   },   
  17.   //下面這些都是自定義的   
  18.   anotherDefinedValue : ' another value in ImpleClass',   
  19.   anotherTestFunction : function(){   
  20.    alert('another function in ImpleClass');   
  21.   }   
  22.      
  23.  });   
  24.    

 

 

     請注意,在實現類中重新定義了testFunction和definedVariable,
     就像我們添加新的函數和變量一樣。特別需要注意的是:如果你想在實現類中定義
     一個已經在基類中定義了的函數或者變量,基類中的定義將會取代實現類中的定義。

    如果不明白,看看下面的例子就知道了。

Js代碼 複製代碼
  1. var impleClass = new ImpleClass();   
  2.    impleClass.testFunction();   
  3.    alert("impleClass.testValue:"+impleClass.definedValue);   
  4.    //顯示自定義的   
  5.    impleClass.anotherTestFunction();   
  6.    alert("impleClass.testValue:"+impleClass.anotherDefinedValue);  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章