Я хотел бы создать функцию, которую можно вызывать нормально:
myFn(arg1, arg2)
Или как помеченный литерал шаблона:
myFn`text ${someVar}`
Можно ли в реализации myFn
определить, был ли он вызван обычным образом или как теговый литерал шаблона? Аргументы, передаваемые литералу шаблона, имеют определенный шаблон (первый аргумент — это массив строк, дополнительные аргументы, если они существуют, будут на единицу меньше, чем длина массива в первом аргументе), поэтому я мог определить на основе этого . Но теоретически кто-то может передать тот же шаблон аргумента в обычный вызов функции.
Есть ли какой-то особый способ определить, как это было вызвано, кроме обнаружения шаблона аргумента?
raw
, которое представляет собой массив той же длины. - person Paul   schedule 04.07.2019