我有一个方法
public function show (text:Object="", title:String="", body=String=""){
//blah
}
我希望text获取默认值,并传入其他两个参数的值。我想知道是否有某种方法可以称之为
show(title="sample", body="xyz");
很抱歉,如果这个问题非常基本,我刚开始接受Actionscript,而我的谷歌搜索技巧有限,并没有带来任何丰硕的成果。
答案 0 :(得分:1)
没有办法做到这一点;除了手动发送默认值:
show ("", "sample", "xyz");
这种做法首先违背了违约的目的。一般来说,我会先把所需的项目放在一起来组织我的方法签名。具有可能在下一次更改的默认值的项目;最后具有不太可能改变的默认值的项目。
这并不总是一个微不足道的决定。
答案 1 :(得分: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
答案 2 :(得分:0)
您无法在动作脚本中执行此操作
show(title="sample", body="xyz");
如果我们在C ++的土地上你可以重载show并且有2个方法有不同的签名,但你也不能这样做。我通常做的是使用不同的参数制作2个方法并调用基函数:
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);
}