public function Shard() {
}
public function Shard(x:Number, y:Number, vx:Number, vy:Number, rotation:Number, spin:Number)
{
...
}
我的第二個構造有:
多重構造定義 發現。代碼中可能未定義構造函數 。
那麼,ActionScript-3不能有多個構造函數?
public function Shard() {
}
public function Shard(x:Number, y:Number, vx:Number, vy:Number, rotation:Number, spin:Number)
{
...
}
我的第二個構造有:
多重構造定義 發現。代碼中可能未定義構造函數 。
那麼,ActionScript-3不能有多個構造函數?
不,你不能有多個構造器既不與不同的簽名相同的功能,但你可以使用默認參數:
public function Shard(x:Number=NaN, y:Number=NaN) {
//...
}
那麼你可以打電話new Shard()
或new Shard(100)
或new Shard(100, 200)
,或者你可以也使用可變參數:
public function Shard(...args){
if (args.length==0) {
//...
} else {
//...
var firstArg:Object=args[0];
//...
}
}
它比這更廣泛。 AS3根本不支持function overloading。
您可以模擬具有參數默認值的多個構造函數的外觀和/或動態分配參數到各種方法。或者,自定義對象工廠或靜態創建方法可以提供幫助。
+1。我用靜態方法來初始化和返回一個新的實例(類似工廠)。通常,這些方法是在同一個類中定義的,只是爲了簡化調用代碼的接口。在某些情況下,這是一種簡單而有效的解決方法(儘管如果你想擁有不同的這些「構造函數」,那麼你必須執行名稱重組,因爲編譯器不會爲你做) – 2010-08-24 20:06:42
爲什麼你想要多個構造函數?有些參數是可選的嗎? – timrwood 2010-08-24 19:18:08