通過

2012-05-10 35 views
0

位置參數我有一個方法通過

public function show (text:Object="", title:String="", body=String=""){ 
    //blah 
} 

我希望文字獲得默認值,並在值傳遞的另外兩個參數。我想知道是否有某種方式,我可以把它作爲這樣

show(title="sample", body="xyz"); 

很抱歉,如果這個問題真的是基本的,我剛開始拿起ActionScript和我有限的谷歌搜索技巧沒有返回任何豐碩的成果。

回答

1

相較於其他的答案,你可以這樣做:

public function show(params:Object):void 
{ 
    var text:String = params.text || ""; 
    var title:String = params.title || ""; 
    var body:String = params.body || ""; 

    // blah 
} 

然後:

show({ title: "sample", body: "xyz" }); 

我當然建議不要這樣做,因爲與代碼可讀性和可維護性有關的原因,但它仍然是有用的信息。

如果您決定使用此方法,請務必記錄您的方法,清楚地說明,例如,

// Relevant keys for params: 
// text:String, title:String, body:String 
// ...describe each here 
public function show(params:Object):void 
1

沒有辦法做到這一點;除了手動發送默認值:

show ("", "sample", "xyz"); 

而這種失敗的目的是首先有一個默認值。通常,我會嘗試通過首先放置必需的項目來組織我的方法簽名;有可能在接下來被改變的默認項目;最後是默認值不可能改變的項目。

這並不總是一個微不足道的決定。

0

你不能做這個動作腳本

show(title="sample", body="xyz"); 

如果我們在C++中的土地,你可以重載表演,並有2種方法具有不同的簽名,但你不能做,要麼。我通常做的是使2種方法不同PARAMS和調用基函數:

public function showTextTitleBody(text:Object="",title:String="",body:String="") 
{ 
    //do your thing with the 3 params 
} 

public function showTitleBody(title:String="",body:String="") 
{ 
    showTextTitleBody("",title,body); 
}