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

Rob*_*sto 4 apache-flex actionscript reference function

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

public var callback:Function;
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.现在,我想向此类添加一个事件监听器并测试是否存在回调.我这样做:

this.addEventListener(MouseEvent.MOUSE_OVER, function(event:MouseEvent) : void {
        if (callback) {
            // do some things
        }
});
Run Code Online (Sandbox Code Playgroud)

这很好用,不会抛出任何错误,但无论我在哪里测试回调,我都会得到以下警告:

3553: Function value used where type Boolean was expected.  
Possibly the parentheses () are missing after this function reference.
Run Code Online (Sandbox Code Playgroud)

这让我感到烦恼,所以我试图通过测试null和undefined来摆脱警告.那些导致错误.我也无法将Function实例化为null.

我知道,我知道,真正的程序员只关心错误,而不是警告.如果这种情况得不到解决,我会活下来.但它困扰我!:)我只是神经质,或者实际上是否有某种方法来测试是否在没有IDE婊子的情况下创建了真正的函数?

quo*_*uoo 6

与使用typeof类似:

if(callback is Function){

}
Run Code Online (Sandbox Code Playgroud)

我相信如果函数存在并且是函数则应该求值为true,如果它是null或不是函数则应该为false.(虽然如果这不起作用试试if(callback && callback is function){}