您的位置:首页 > 其它

Flex在匿名方法移除自身的侦听方法

2012-07-05 11:16 274 查看


Flex在匿名方法移除自身的侦听方法

btn.addEventListener(Event.CLICK,function(event:Event):void

{

.....

event.target.removeEventListener(Event.CLICK, arguments.callee);

});

arguments 对象

在将参数传递给某个函数时,可以使用 arguments 对象来访问有关传递给该函数的参数的

信息。arguments 对象的一些重要方面包括:

■ arguments 对象是一个数组,其中包括传递给函数的所有参数。

■ arguments.length 属性报告传递给函数的参数数量。

■ arguments.callee 属性提供对函数本身的引用,该引用可用于递归调用函数表达式。

在 ActionScript 3.0 中,函数调用中所包括的参数的数量可以大于在函数定义中所指定的参

数数量,但是,如果参数的数量小于必需参数的数量,在严格模式下将生成编译器错误。您

可以使用 arguments 对象的数组样式来访问传递给函数的任何参数,而无需考虑是否在函

数定义中定义了该参数。 下面的示例使用 arguments 数组及 arguments.length 属性来输出

传递给 traceArgArray() 函数的所有参数:

function traceArgArray(x:int):void

{

for (var i:uint = 0; i < arguments.length; i++)

{

trace(arguments[i]);

}

}

traceArgArray(1, 2, 3);

// 输出:

// 1

// 2

// 3

arguments.callee 属性通常用在匿名函数中以创建递归。您可以使用它来提高代码的灵活

性。如果递归函数的名称在开发周期内的不同阶段会发生改变,而且您使用的是

arguments.callee(而非函数名) ,则不必花费精力在函数体内更改递归调用。在下面的函

数表达式中,使用 arguments.callee 属性来启用递归:

var factorial:Function = function (x:uint)

{

if(x == 0)

{

return 1;

}

else

{

return (x * arguments.callee(x - 1));

}

}

trace(factorial(5)); // 120

如果您在函数声明中使用 ...(rest) 参数,则不能使用 arguments 对象,而必须使用为参数声

明的参数名来访问参数。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: