11

テンプレート リテラル用の es6 タグ関数を作成しています。これは、最初に文字列内の条件をチェックし、条件が見つからない場合は、テンプレート リテラルをタグ付けされていないかのように解釈するだけです。タグ関数から、ブラウザのネイティブ テンプレート リテラル関数を呼び出す方法があるかどうか興味があります (これは、自分で実装した関数よりも高速であると想定しています)。おまけ: これで、htmlEscape(unindent foobar);などのタグ構成の機会が得られるのではないでしょうか。

例えば。

function dumbTag(strs, ...vals) {
    vals = vals.map((val,i) =>
            (i % 2 == 0 ? 'even:' : 'odd:')+val);
    return String.template(strs, ...vals);
}

私自身の実装された関数 - ブラウザが行うことを呼び出すためのより高速な方法/方法はありますか?

function template(strs, ...vals) {
    let result = strs[0];
    for (let [i,val] of vals.entries()) {
        result += val;
        result += strs[i+1];
    }
    return result;
}
4

4 に答える 4