Mootools 1.2教程(21)——類(二)
2024-05-06 14:13:59
供稿:網(wǎng)友
Fdream注:原文好像少了一部分,因此我自作主張地補(bǔ)充了下面這一段及BaseClass的代碼。
在今天的教程中,我們將主要學(xué)習(xí)一下MooTools中類的實現(xiàn)和繼承(擴(kuò)展)。通過實現(xiàn)和繼承,我們可以在子類中使用父類的方法,而不需要再重新聲明和實現(xiàn)相同的方法。MooTools中的Class類可以幫助我們輕松地做到這一點。首先,我們定一個基類(base class)。
參考代碼:
代碼如下:
var BaseClass = new Class({
// 定義一個方法testFunction
// 這個方法彈出一個對話框
testFunction : function(){
alert('This function is defined in BaseClass');
}
});
現(xiàn)在,我們已經(jīng)有了一個基類(base class),我們可以通過創(chuàng)建一個新類來實現(xiàn)它從而使用它的全部功能。注意,在下面的例子中,我們的新類沒有做任何事情,而只是實現(xiàn)了基類BaseClass。
參考代碼:
代碼如下:
// 創(chuàng)建一個名叫ImplementingClass的類
var ImplementingClass = new Class({
// 我所做的全部事情就是實現(xiàn)Baseclass
Implements : BaseClass
});
現(xiàn)在,我們就可以創(chuàng)建一個ImplementingClass的實例,并使用在BaseClass中定義的方法。
參考代碼:
代碼如下:
var demo_one = function(){
// 創(chuàng)建一個ImplementingClass實例
var test_class = new ImplementingClass();
// 調(diào)用在BaseClass中定義的testFunction
test_class.testFunction();
}
demo_one()
你也可以對基類中的變量和初始化函數(shù)(構(gòu)造函數(shù))做同樣的事情。如果你在實施類(實現(xiàn)基類的類)中聲明了的話,每個你在基類中定義的東西就將被轉(zhuǎn)移到實施類中。
注意:從現(xiàn)在開始,我們下面所有的示例中將全部使用下面這個版本的BaseClass。
參考代碼:
代碼如下:
var BaseClass = new Class({
// 把參數(shù)賦值給這個類中的inputVariable變量
initialize: function(input){
this.inputVariable = input;
},
// 顯示變量inputVariable的值
testFunction : function(){
alert('BaseClass.testFunction() : ' + this.inputVariable);
},
// 為這個類的所有實例定義一個內(nèi)部變量
definedVariable : "Defined in BaseClass",
});
var ImplementingClass = new Class({
// 重復(fù)一遍:
// 這里我們做的全部事情就只是實現(xiàn)BaseClass
Implements : BaseClass
});
下面的示例表明:初始化程序、函數(shù)調(diào)用和變量都可以被訪問到,就像它們是屬于這個實施類的。
參考代碼:
代碼如下:
var demo_two = function(){
// 創(chuàng)建一個ImplementingClass實例
var test_class = new ImplementingClass('this is the input value');
// 調(diào)用testFunction()(在BaseClass中定義的)
test_class.testFunction();
// 顯示變量definedVariable的值
alert('test_class.testVariable : ' + test_class.definedVariable);
}
demo_two()
一旦你實現(xiàn)了一個類,你可以添加任何你想要的功能到你的實施類定義中。