将JS函数的bind方法当作一个值来处理,使其与三元运算符和短路运算符一起使用时,其行为异常。为什么会这样?
我试图通过使用三元运算符来使实用程序函数更短,但是它总是导致Uncaught TypeError: Bind must be called on a function
。
所以我尝试了一下,效果很好:
(Date.bind)(null)()
尽管如此,它却没有:
(true && Date.bind)(null)()
这也没有:
(true ? Date.bind : '')(null)()
根据对这些表达式的求值,我希望每个表达式都具有相同的输出(代表日期的字符串值),但它只在第一个表达式中发生,而另一个则导致错误Uncaught TypeError: Bind must be called on a function
。