为什么以下行有时会在chrome dev控制台中产生“undefined is not a function”消息:
(callbackOrUndefined || function() {})();
这个想法是执行回调,如果它是真实的,即一个函数,否则执行空函数。
我不得不用以下代替:
if (callbackOrUndefined !== undefined) callbackOrUndefined();
编辑:我想我不够清楚。有时似乎将块评估为undefined();而我不明白为何以及为何。
答案 0 :(得分:2)
那是因为callbackOrUndefined
有一个假值,然后选择了null函数,当被调用时,它返回undefined
。
请注意,即使undefined
未返回定义的值,您也可能会callbackOrUndefined
...
答案 1 :(得分:0)
我假设callbackOrUndefined
未定义。所以它的价值被认为是虚假的。然后OR
计算空函数。空函数不会返回任何内容。 chrome dev控制台始终打印您执行的任何代码的最后返回值。在这种情况下,这是未定义的。
undefined
。为了不返回undefined
,callbackOrUndefined
需要有一些真正的价值。