0

我想从变量中调用内联函数,但考虑到这种情况,当变量为空/未定义或不是函数时。

var f;
if(typeof(f) == 'function') {
    f(); // don't get executed
}
f(); // this is of course not working, but it is executing

var fn = function() { console.warn('fn'); }
fn(); // working because fn is a function

基本上我想要 if 语句,在一行中检查变量是否是函数。

我看到了这一点,并认为未定义/非函数必须有一些东西:

var screenSize = screen.width || 1024;
4

1 回答 1

1

您可以使用逻辑 AND:

typeof f === 'function' && f();

仅当第一个运算符为真时才评估第二个运算符。

于 2013-08-01T23:19:48.787 回答