let x = 'Hi', y = 'Kevin'; var res = message`${x}, I am ${y}`; console.log(res);
我们可以自定义 message 函数来处理返回的字符串:
1 2 3 4 5 6 7
// literals 文字 // 注意在这个例子中 literals 的第一个元素和最后一个元素都是空字符串 functionmessage(literals, value1, value2) { console.log(literals); // [ "", ", I am ", "" ] console.log(value1); // Hi console.log(value2); // Kevin }
我们利用这些参数将其拼合回去:
1 2 3 4 5 6 7 8 9 10 11 12
functionmessage(literals, ...values) { let result = ''; for (let i = 0; i < values.length; i++) { result += literals[i]; result += values[i]; } result += literals[literals.length - 1]; return result; }
你也可以这样写:
1 2 3 4 5 6 7 8
functionmessage(literals, ...values) { let result = literals.reduce((prev, next, i) => { let value = values[i - 1]; return prev + value + next; });