gpt4 book ai didi

javascript - 如何更新在 javascript 中使用模板文字的对象值?

转载 作者:行者123 更新时间:2023-11-28 14:31:28 26 4
gpt4 key购买 nike

如您所见,对象 obj2 使用 obj1 中定义的模板文字。如何在调用 func() 时更新 obj2 中 title 的对象值?

在文件1中

let obj1 = { name: 'abc' }, 
obj2 = { title : `${obj1.name}` }

在文件2中

import {obj1, obj2} from 'file1';

func();

func() {
let obj1 = _.clone(obj1), obj2 = _.clone(obj2);
obj1.name = 'Title of this Page';
console.log(obj2.title) // Still shows abc
}

最佳答案

你不能,当评估模板文字内部的对象初始值设定项时,模板文字会被评估并转换为字符串。 obj.title 是正在评估的模板文字(字符串 1)的结果,而不是某种模板对象。模板文字正是这样的:文字符号,在遇到它时进行评估(就像字符串文字在遇到字符串文字时进行评估,产生一个字符串) .

相反,您可以将 title 设为将 name 传递给的函数:

let obj1 = { name: 'abc' }, 
obj2 = { title : name => `${name}` }

当然,当您想要标题时,您必须调用它。

<小时/>

¹ 在本例中为字符串,因为模板文字是独立的,未附加到标记函数。

关于javascript - 如何更新在 javascript 中使用模板文字的对象值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51329080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com