AS3方法的默认调用方值

时间:2011-04-07 11:08:20

标签: actionscript-3

有没有办法将方法范围参数的默认值设置为调用者?

在AS3中,您可以设置方法参数的默认值,如下所示:

function myFuntion(param1:String="hello",param2:int=3) {

您可以通过以下方式传递对象的引用:

//method of Class1
function myFuntion(obj:Object) { } //do something with obj

//in Class2
var class1:Class1 = new Class1();
class1.myFunction(this);

所以问题是,是否有一个关键字可以像:

一样使用
//method of Class1
function myFuntion(obj:Object = CALLER) { } //do something with obj

//in Class2
var class1:Class1 = new Class1();
class1.myFunction();

2 个答案:

答案 0 :(得分:2)

Object类型接受的唯一默认函数参数值为“null”。

function myFunction(obj:Object = null):void {};

var class1:Class1 = new Class1();
class1.myFunction();

答案 1 :(得分:1)

不,没有办法满足你的要求,这对于封装和代码可读性来说是件好事。你应该被迫故意传递这个,这样任何阅读Class2的人都可以清楚地知道你的函数被引用了什么。

一般来说,你应该问自己“为什么?”任何时候你有一个类型为对象的函数参数(这很通用!)。我并不是说从来没有一个充分的理由 - 例如出于错误报告的目的 - 但往往是OOP设计不佳的标志(例如使用Object因为你太懒而无法做出正确的您正在传递或绕过类型检查的数据结构类