ES6 템플릿 리터럴에 대한 실행 연기
ES6 템플릿 리터럴은 문자열 보간을 위한 강력한 구문 설탕을 제공하지만, 평가를 연기하려는 경우에는 어떻게 해야 합니까? 동적 요소 생성 이후까지?
문제
전통적으로 String.prototype.format을 사용하면 지연 평가가 허용됩니다. 그러나 템플릿 리터럴은 구문 분석 시 평가되므로 이러한 접근 방식을 방지합니다.
해결책 1: 태그가 있는 템플릿 리터럴 사용
태그가 있는 템플릿 리터럴을 사용하면 템플릿을 가로채서 처리할 수 있습니다. 평가 전 리터럴:
function formatter(literals, ...substitutions) { return { format: function() { // ... code here ... } }; } console.log(formatter`Hello, <pre class="brush:php;toolbar:false">String.prototype.format = function() { var args = arguments; return this.replace(/$\{p(\d)\}/g, function(match, id) { return args[id]; }); }; console.log("Hello, ${p0}. This is a ${p1}".format("world", "test"));
해결책 2: 일반 문자열 리터럴 사용
또는 일반 문자열 리터럴을 사용하고 대체 항목을 수동으로 구문 분석할 수 있습니다.
const welcome = (p0, p1) => `Hello, ${p0}. This is a ${p1}`; console.log(welcome("world", "test"));
해결책 3: 템플릿 리터럴을 피하고 함수 매개변수를 사용하세요
마지막으로 템플릿 리터럴을 완전히 피하고 함수 매개변수를 사용할 수 있습니다.
고려 사항
위 내용은 ES6 템플릿 리터럴의 평가를 연기하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!