Flash AS3知道一个函数需要多少个参数
有没有办法知道函数实例在Flash中可以接受多少参数?了解这些参数是否是可选的也是非常有用的 例如:Flash AS3知道一个函数需要多少个参数,flash,actionscript-3,function,introspection,Flash,Actionscript 3,Function,Introspection,有没有办法知道函数实例在Flash中可以接受多少参数?了解这些参数是否是可选的也是非常有用的 例如: public function foo() : void //would have 0 arguments public function bar(arg1 : Boolean, arg2 : int) : void //would have 2 arguments public function jad(arg1 : Bool
public function foo() : void //would have 0 arguments
public function bar(arg1 : Boolean, arg2 : int) : void //would have 2 arguments
public function jad(arg1 : Boolean, arg2 : int = 0) : void //would have 2 arguments with 1 being optional
谢谢是的,有:使用Function.length属性。 我只是检查了一下:不过似乎没有提到
trace(foo.length); //0
trace(bar.length); //2
trace(jad.length); //2
请注意,函数名后面没有大括号()。您需要函数对象的引用;添加大括号将执行该函数
不过,我不知道有什么方法可以确定其中一个论点是可选的
编辑
那怎么办
这是有意义的,因为无法知道将传递多少个参数。
请注意,在函数体中,您可以确切地知道传递了多少个参数,如下所示:
function foo(...rest) {
trace(rest.length);
}
感谢@felipemaia指出这一点。函数foo(…args)的行为会是什么?显然,无论您是否实际传入参数,它都返回0。我将编辑我的答案。谢谢你指出这一点。否决这一答案的人能否澄清他认为这有什么问题?也忍不住注意到,几乎同时被否决了…+1。哇!以前从没见过这个。是否是AS2中的Object.length潜入AS3:)?
function foo(...rest) {
trace(rest.length);
}