В последнее время я много занимаюсь шаблонизацией в JS, поэтому я постоянно сталкиваюсь с «злым» утверждением with
.
Это значительно упрощает работу с шаблонами, так как вы этого не делаете.я должен предварять ваши переменные объектом.
Слыша, что с заявлениями это плохо, а также что они могут привести к снижению производительности, я выбрал другое решение:
Мое решение: Функция с связкой параметров
Вот мой код:
var locals = {
name : "Matt",
email : "wahoo@wahoo.com",
phone : "(555) 555-5555"
};
var keys = [];
var values = [];
for (key in locals) {
local = locals[key];
keys.push(key)
values.push(local);
}
keys = keys.join(',');
var fn = new Function(keys, "**TEMPLATE STUFF**"); // function(name, email, phone) {...}
fn.apply(this, values); // fn("Matt","wahoo@wahoo.com","(555) 555-5555")
Примечание: они выполняют одно и то же.Оба абстрагированы от кого-либо, так что список параметров, вызывающий ужасную длинну, не важен.
Мне интересно, какой из них лучше: использование оператора with или функции с потенциалом для сумасшедшего числа параметров.
Если у кого-то нет лучшего решения ...?
Спасибо!Мэтт Мюллер