Загадка повторного использования в литералах шаблонов ES6
Основная проблема, поднятая в этом обсуждении, связана с предполагаемым отсутствием возможности повторного использования в литералах шаблонов ES6. Обычные демонстрации подчеркивают замены во время объявления, запрещая модификацию во время выполнения.
Решение: использование конструктора функций
Для решения этой проблемы появляется жизнеспособное решение в виде Конструктор функций. Этот подход предполагает преобразование строки шаблона в функцию.
Рассмотрим следующий фрагмент:
const templateString = `Hello ${this.name}!`;
const templateVars = {
name: "world"
};
const fillTemplate = function(templateString, templateVars){
return new Function("return `" templateString "`;").call(templateVars);
};
console.log(fillTemplate(templateString, templateVars));
Вызывая эту функцию, вы можете сгенерировать нужную строку, сохраняя при этом гибкость в изменении переменных во время выполнения.
Преимущества этот подход:
Потенциальные недостатки:
Подводя итог, хотя литералам шаблона ES6 по своей сути не хватает истинной возможности повторного использования, использование конструктора Function предлагает обходной путь, который имитирует желаемое поведение создания и изменение шаблонов во время выполнения.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3