Javascript 值不为';无法在模板字符串中更新

Javascript 值不为';无法在模板字符串中更新,javascript,ecmascript-6,template-strings,Javascript,Ecmascript 6,Template Strings,你好 我将fName、lName和position设置为空字符串,我希望在单击按钮后更改它们的值,并将该值保存到this.templates${this.fName}等 showMessage方法应接收单击并更新值并插入模板。除了更新值之外,一切都很好。当它到达“mP.innerHTML=_this.template;”行时,值是空的,就像在开始时设置的一样 奇怪的是,在“mP.innerHTML=\u this.template;”之前运行的console.log(\u this.fName)

你好 我将fName、lName和position设置为空字符串,我希望在单击按钮后更改它们的值,并将该值保存到this.templates${this.fName}等

showMessage方法应接收单击并更新值并插入模板。除了更新值之外,一切都很好。当它到达“mP.innerHTML=_this.template;”行时,值是空的,就像在开始时设置的一样

奇怪的是,在“mP.innerHTML=\u this.template;”之前运行的console.log(\u this.fName)在单击时给出了正确的值

有什么问题吗?我如何解决这个问题

类消息{
构造函数(){
this.fName='';
this.lName='';
这个位置=“”;
这个新娘={
fName:'安娜',
名称:“Doe”,
位置:“新娘”
};
这个。新郎={
fName:'约翰',
名称:“Doe”,
职位:“新郎”
};
this.template=/*html*/`
x
我的名字是${this.fName}${this.lName},${this.position}
`;
this.elements=函数(){
让messageButtons=document.querySelectorAll(“.wed-couple-newlyweds-message”);
让messagePopup=document.querySelector('.messagePopup');
让messageClose=document.querySelector('.messageClose');
让messageDiv=document.querySelector('.message');
返回{
messageButtons:messageButtons,
messagePopup:messagePopup,
messageClose:messageClose,
messageDiv:messageDiv
};
};
//启动方法
//方法结束。
}
//声明方法
//1.单击时显示消息。
showMessage(){
var_this=这个;
设els=newthis.elements();
设mB=els.messageButtons;
设mP=els.messagePopup;
设mD=els.messageDiv;
mB.forEach(函数(消息){
message.onclick=function(){
if(message.classList.contains(`weddlevenlywedds newlywedds message bride`){
console.log('bride')
_this.fName=\u this.bride.fName
_this.lName=\u this.bride.lName
_this.position=_this.bride.position
console.log(_this.fName)
mP.innerHTML=\u this.template;
}否则{
console.log('groom')
_this.fName=\u this.groom.fName
_this.lName=\u this.groom.lName
_this.position=\u this.groom.position
console.log(_this.fName)
mP.innerHTML=\u this.template;
}
设mC=els.messageClose;
_this.closeMessage();
}
});

};
类似于

var foo = `Hello, ${name}`;
相当于:

var foo = "Hello, " + name;

它在解释时获取变量的值,并生成一个规则字符串

它不会创建任何类型的类似字符串的对象,该对象通过观察插值变量的值来动态更新其值


如果要使用变量的新值获取新字符串,则需要重新运行代码


使其成为一个函数。

类似于

var foo = `Hello, ${name}`;
相当于:

var foo = "Hello, " + name;

它在解释时获取变量的值,并生成一个规则字符串

它不会创建任何类型的类似字符串的对象,该对象通过观察插值变量的值来动态更新其值


如果要使用变量的新值获取新字符串,则需要重新运行代码


将其转换为函数。

如果您能提供一个示例,说明如何将var返回的输出更改为字符串,则此响应将更有帮助。当前,当我将模板字符串更改为函数返回值时,它会抛出一个错误。如果您能提供一个示例,说明如何更改var返回的输出,则此响应将更有帮助当前,当我将模板字符串更改为函数返回值时,它会抛出一个错误。