apache-flex - 在 ActionScript 中,有没有办法测试数据类型为 "Function"的变量是否存在

标签 apache-flex actionscript function reference

所以我有一个类,我在其中实例化一个变量回调,如下所示:

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/

相关文章:

actionscript-3 - Flash Pro Admob横幅

postgresql - 调用一个函数,该函数具有分配给它的数值以进行查询

javascript - 在javascript中访问函数的变量?

ajax - 检测 HTTP 请求是否来自浏览器/Flex 异步请求?

apache-flex - 弹性 : DataGrid column formatting of numbers

flash - 在 FF 中,按键滞后于鼠标

apache-flex - 如何在 Flash Player 11 中启用 LZMA 压缩?

actionscript - 使用 applescript 在 Outlook 中创建带有附件的邮件

我可以同时使用 C 和 ActionScript 吗?

c - 在 C 中的循环内声明一个函数