У меня есть простая функция протоколирования:Почему функции можно вызывать без круглых скобок при использовании строк шаблона?
function log(str) {
console.log('logged: ', str);
}
Если я называю это без скобок (в настоящее время с помощью средства разработки Chrome), и передать в строке шаблона, например:
log`foo`
Выход: logged: ["foo", raw: Array[1]]
Если я называю это с помощью скобок,
log(`foo`)
Выходной сигнал: logged: foo
Почему вызов функции с использованием строки шаблона в скобках не работает в Javascript? Что происходит, что приводит к тому, что результат отличается от вызова его круглыми скобками?
Стоит добавить ссылку, о которой я раньше не слышал: https://developers.google.com/web/updates/2015/01/ES6-Template-Strings#tagged-templates – Mathletics
Я столкнулся с этим после видя, что он используется в коде сотрудника, который я просматривал. Классная вещь. Спасибо за объяснение. –