我有一个方法
public function show (text:Object="", title:String="", body=String=""){
//blah
}
我希望文本获取默认值,并传入其他两个参数的值。我想知道是否有某种方法可以这样称呼它
show(title="sample", body="xyz");
对不起,如果这个问题真的很基础,我刚开始学习 Actionscript,我有限的谷歌搜索技能并没有返回任何富有成果的结果。
我有一个方法
public function show (text:Object="", title:String="", body=String=""){
//blah
}
我希望文本获取默认值,并传入其他两个参数的值。我想知道是否有某种方法可以这样称呼它
show(title="sample", body="xyz");
对不起,如果这个问题真的很基础,我刚开始学习 Actionscript,我有限的谷歌搜索技能并没有返回任何富有成果的结果。
没有办法做到这一点。除了手动发送默认值:
show ("", "sample", "xyz");
这首先违背了违约的目的。通常,我会尝试通过将所需项目放在首位来组织我的方法签名;具有接下来可能会更改的默认值的项目;最后是具有不太可能更改的默认值的项目。
这并不总是一个微不足道的决定。
与其他答案相比,您可以这样做:
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
您不能在动作脚本中执行此操作
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);
}