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){} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |