![](/img/trans.png)
[英]how can i prettier template literal in javascript with intellij
[英]How can I update an object value which uses a template literal in javascript?
如您所見,對象obj2使用的是obj1中定義的模板文字。 調用func()后,如何更新obj2中title的對象值?
let obj1 = { name: 'abc' },
obj2 = { title : `${obj1.name}` }
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
是字面被評估(一string¹)的模板的結果 ,而不是某種模板對象的。 模板文字正好是這樣:一種文字符號 ,在遇到文字文字時會進行評估(就像評估字符串文字一樣,當遇到字符串文字時會生成一個字符串)。
相反,您可以將title
作為傳遞name
的函數:
let obj1 = { name: 'abc' },
obj2 = { title : name => `${name}` }
當然,在需要標題時必須調用它。
¹ 在這種情況下為字符串,因為模板文字是獨立的,未附加到標記函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.