加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – 在ActionScript中,有没有办法测试数据类型为“Function

发布时间:2020-12-15 01:48:22 所属栏目:百科 来源:网络整理
导读:所以我有一个类,我实例化一个变量回调,如下所示: public var callback:Function; 到现在为止还挺好.现在,我想向此类添加一个事件监听器并测试是否存在回调.我这样做: this.addEventListener(MouseEvent.MOUSE_OVER,function(event:MouseEvent) : void { if
所以我有一个类,我实例化一个变量回调,如下所示:

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){

}

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读