Oneliner:为什么这个收益未定义不是一个函数
Oneliner: Why does this yield undefined is not a function?
为什么以下行有时会在 chrome 开发控制台中产生消息"未定义不是函数":
(callbackOrUndefined || function() {})();
这个想法是执行回调,如果它是真实的,即一个函数,否则执行空函数。
我不得不用:
if (callbackOrUndefined !== undefined) callbackOrUndefined();
编辑:我想我不够清楚。它有时似乎将块评估为 undefined();我不明白如何以及为什么。
那是因为callbackOrUndefined
有一个假值,然后选择了 null 函数,调用时,它会返回 undefined
。
请注意,即使callbackOrUndefined
没有返回定义的值,您也可能得到undefined
...
我假设callbackOrUndefined
没有定义。所以它的价值被认为是虚假的。然后,OR
计算空函数。空函数不返回任何内容。Chrome 开发控制台始终会打印您执行的任何代码的最后一个返回值。在这种情况下,这是未定义的。
顺便说一句,它不是总是返回undefined
.为了不返回undefined
,callbackOrUndefined
需要有一些真实的值。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 我可以在json对象中添加一个函数吗
- Javascript使函数一个接一个地执行
- 是JavaScript中的函数一个对象
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 两个Javascript函数一个window.onload=Custom.init;和一个window.onload=f
- 使javascript加载函数一个接一个地执行
- 如何通过两个嵌套的匿名函数(一个带有超时的事件处理程序)传递变量
- 为什么我不能让两个jQuery函数一个在另一个里面呢?
- 给函数一个变量名,而不是它的值
- 如何使用嵌入函数(一个滚动页由Pete - peachananr)
- 是否有可能给JavaScript函数一个类型/类?
- 确保两个函数一个接一个地执行,其中第一个函数内部有一个异步调用
- 两个不同的ajax函数一个接一个调用返回相同的值
- jQuery第一次更改函数一个工作
- 给这个函数一个id
- 如何给回调函数一个值一个变量在特定时刻
- 使用回调使两个函数一个接一个地运行
- 两个函数(一个用php)是否可以用“;onclick”;
- 两个几乎相同的函数.一个函数用Queue进行排队.Jquery效果在queued函数上不起作用.为什么