Javascript Es6 Tagged Templates - Когда используется raw? Когда готовится используется?
После изучения этого примера шаблона тега Es6:
var yo = func`${x} + ${y}\n= ${x + y}`;
one@public-node ~/es6 $ 6to5 tag.js
"use strict";
var _taggedTemplateLiteral = function (strings, raw) {
return Object.freeze(Object.defineProperties(strings, {
raw: {
value: Object.freeze(raw)
}
}));
};
var yo = func(_taggedTemplateLiteral(["", " + ", "\n= ", ""], ["", " + ", "\\n= ", ""]), x, y, x + y);
Я вижу, что возвращаетсяvar yo = func(strings, raw, x, y, x + y);
Я понимаю основы строковых литералов иx
y
значения вставляются. Чего я не понимаю, так это ... когда используются строки, а не используются? Так как функция имеет как массивы, так и пользователь не имеет возможности сообщить ей, когда использовать raw, а когда использовать cooked (строки).