Почему метод связывания при использовании в качестве значения в выражении не работает?

Обработка метода привязки для функций 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,

0 ответов

Другие вопросы по тегам