下面的代碼片段用於Mozilla(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals)以解釋Tagged Template literal
,請幫我理解下面的函數正在做什麼,我無法獲得該函數的實際流程,因爲他們已經使用了keys.foreach
和當我在Chrome檢查,鑰匙是一個功能,所以無法理解瞭解ES6標記的模板文字
function template(strings, ...keys) {
return (function(...values) {
var dict = values[values.length - 1] || {};
var result = [strings[0]];
keys.forEach(function(key, i) {
var value = Number.isInteger(key) ? values[key] : dict[key];
result.push(value, strings[i + 1]);
});
return result.join('');
});
}
var t1Closure = template`${0}${1}${0}!`;
t1Closure('Y', 'A'); // "YAY!"
var t2Closure = template`${0} ${'foo'}!`;
t2Closure('Hello', {foo: 'World'}); // "Hello World!"
「*當我在Chrome檢查,按鍵是功能*」 - 沒有。 'keys'是一個數組。 – Bergi
是的,鍵是一個數組,但不知何故,當我問的問題,我檢查了鍵,當調試器是在forEach裏面,那時你不能訪問鍵數組,如果你鍵入鍵,你會在控制檯得到一個功能 –
嗯只是寫一個標準的'for(let i = 0; i
Bergi