習(xí)慣了C++和Java的語(yǔ)法,以為ActionScript3也同樣支持函數(shù)重載,昨天試著寫(xiě)了下面這樣一個(gè)類(lèi)后發(fā)現(xiàn)居然報(bào)錯(cuò):Multiple constructor definitions found,原來(lái)ActionScript3并不支持我們常用的那種函數(shù)重載方式。 那么在ActionScript3里是如何實(shí)現(xiàn)這樣的功能的呢?其實(shí)是借鑒c語(yǔ)言里的可變參數(shù)列表來(lái)實(shí)現(xiàn)的,腳本語(yǔ)言好像都是這么做的,如下所示: 我們自己先規(guī)定好可接受的參數(shù)列表,然后去做相應(yīng)的處理。但缺點(diǎn)是很明顯的,沒(méi)有編譯時(shí)的參數(shù)檢查,出錯(cuò)的概率增大。不過(guò)畢竟不是強(qiáng)類(lèi)型語(yǔ)言,不能要求這么嚴(yán)格的。調(diào)用時(shí)就可以如下所示:
{
private var name:String = "";
public function MyClass()
{
}
public function MyClass(str:String)
{
this.name = str;
}
public function get Name():String
{
return this.name;
}
}
{
private var name:String = "";
public function MyClass(
{
if (arg.length == 0)
{
this.name = "default";
}
else if (arg.length == 1)
{
this.name = arg[0];
}
}
public function get Name():String
{
return this.name;
}
}
聯(lián)系客服