Почему метод связывания при использовании в качестве значения в выражении не работает?
Обработка метода привязки для функций JS как значения делает его неожиданно вести себя при использовании в сочетании как с троичными, так и с операторами короткого замыкания. Почему это происходит?
Я попытался сократить служебную функцию с помощью троичного оператора, но это всегда приводило к 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
,