是否有东西返回对调用函数的对象的引用?
例如,我有..
public function getSquadLocation(squadID:int):Location {
//stuff
}
这可以从其他类调用 - 例如:
getSquadLocation(selectedSquad);
其中selectedSquad是调用该函数的类的变量。我要重复这么多次,是否可以将默认值指定为......
public function getSquadLocation(squadID:int = arguments.caller.selectedSquad){
由于
答案 0 :(得分:5)
不,你无法隐含地访问“来电者”。以下是Adobe的ActionScript 3文档的摘录:
与以前版本的ActionScript不同,ActionScript 3.0没有arguments.caller属性。要获取对调用当前函数的函数的引用,必须将对该函数的引用作为参数传递。
你做了什么,它将是一个更安全,更稳定和更健全的替代,是你将对象作为本地参数传递给方法,让这个方法使用它。这种方法有很多优点,从长远来看你可能会发现:
将代码移植到未公开函数调用者信息的其他平台,不那么麻烦。
显式传递所需的调用者信息作为函数参数(在堆栈上)传统上可以产生更多的性能。然而,这是有争议的。
将调用者信息显式传递给函数会更好地读取,因为实现对调用者的依赖性是明确的,有助于提高可读性和理解代码。