Переопределить функцию по умолчанию для обработки строк шаблона ES6 (квази-литералы)
ES6 предлагает шаблоны строк, такие как
`Hello ${name}`
В этом случае вызывается конструктор шаблонов по умолчанию. Вы также можете использовать свои собственные "теги":
tag`Hello ${name}`
где tag
является функцией, которая передает информацию о строке шаблона и генерирует результат.
У меня вопрос, есть ли способ переопределить функцию по умолчанию, вызываемую, когда не указан тег?
Другой вопрос: есть ли способ определить, вызывается ли функция тега системой для построения строки шаблона, а не, скажем, вызывается напрямую, кроме проверки первого аргумента для raw
имущество?
1 ответ
Решение
Нет. Это разные синтаксические произведения с разными смысловыми значениями. `stuff`
больше похож на строковый литерал, тогда как tag`stuff`
больше похоже на вызов функции.