>  기사  >  웹 프론트엔드  >  'eval' 또는 'new Function' 없이 일반 문자열을 JavaScript에서 템플릿 리터럴로 변환할 수 있나요?

'eval' 또는 'new Function' 없이 일반 문자열을 JavaScript에서 템플릿 리터럴로 변환할 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-11-23 00:40:12326검색

Can a Regular String Be Converted to a Template Literal in JavaScript Without `eval` or `new Function`?

문자열을 템플릿 문자열로 변환

일반 문자열을 템플릿 문자열로 변환할 수 있으므로 동적 코드 생성 기술이 필요하지 않습니다. eval 또는 new와 같은 함수?

답변:

예, ES6에서는 문자열 프로토타입에 사용자 정의 메서드를 추가할 수 있습니다.

String.prototype.interpolate = function(params) {
  const names = Object.keys(params);
  const vals = Object.values(params);
  return new Function(...names, `return \`${this}\`;`)(...vals);
}

const template = 'Example text: ${text}';
const result = template.interpolate({
  text: 'Foo Boo'
});
console.log(result);

이 메서드는 인수로서의 객체. 여기서 키는 템플릿 문자열 변수를 나타내고 값은 이를 대체합니다. 보간된 템플릿 문자열을 반환하는 새로운 함수를 생성하고 제공된 값으로 실행합니다.

위 내용은 'eval' 또는 'new Function' 없이 일반 문자열을 JavaScript에서 템플릿 리터럴로 변환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.