所以我有一个类,我在其中实例化一个变量回调,如下所示:
public var callback:Function;
到现在为止还挺好。现在,我想向此类添加一个事件监听器并测试回调是否存在。我这样做:
this.addEventListener(MouseEvent.MOUSE_OVER, function(event:MouseEvent) : void {
if (callback) {
// do some things
}
});
这很好用,不会抛出任何错误,但是在我测试回调的任何地方,我都会收到以下警告:
3553: Function value used where type Boolean was expected.
Possibly the parentheses () are missing after this function reference.
这让我很烦恼,所以我试图通过测试 null 和 undefined 来消除警告。那些导致错误。我也不能将 Function 实例化为 null。
我知道,我知道,真正的程序员只关心错误,而不关心警告。如果这种情况不解决,我会活下来。但这让我很困扰! :) 我只是神经质,还是实际上有某种方法可以测试是否已经创建了一个真正的函数而没有 IDE 对它发牢骚?
最佳答案
类似于使用 typeof:
if(callback is Function){
}
如果函数存在并且是函数,我认为应该评估为真,如果它为空或不是函数,则评估为假。 (虽然如果这不起作用,请尝试
if(callback && callback is function){}
关于apache-flex - 在 ActionScript 中,有没有办法测试数据类型为 "Function"的变量是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791135/