我们可以在javascript中更改存储在另一个变量中的变量的值吗

我们可以在javascript中更改存储在另一个变量中的变量的值吗,javascript,Javascript,有一个变量,比如说var content,它包含一些HTML内容,这个HTML还包含一个JavaScript变量,比如说${id}。现在我想更新${id}变量的值。我尝试了以下代码,但它不起作用 var id = ''; var content = `<div class="row well margin_btm_ten"> <div class="col-md-1"> <b>ID is ${id}</b> &l

有一个变量,比如说
var content
,它包含一些HTML内容,这个HTML还包含一个JavaScript变量,比如说
${id}
。现在我想更新
${id}
变量的值。我尝试了以下代码,但它不起作用

var id = '';
var content = `<div class="row well margin_btm_ten">
    <div class="col-md-1">
        <b>ID is ${id}</b>  
    </div>`;
row_id = 2;
setTimeout(function(){
    console.log(content)
});
varid='';
变量内容=`
ID为${ID}
`;
行id=2;
setTimeout(函数(){
console.log(内容)
});

这是不可能的,因为对“内容”的引用是用变量
id
的当前值创建的。JavaScript变量基本上是用于存储数据值的容器。您需要“重新运行”
content
变量,以获取新的
id
。但是我认为你应该使用函数而不是覆盖变量

constprintname=(name=>console.log(`Hello${name}');
让name=“Mark”;
打印名(姓名);
name=“彼得”;

打印名(姓名)这是不可能的,因为对“内容”的引用是使用变量
id
的当前值创建的。JavaScript变量基本上是用于存储数据值的容器。您需要“重新运行”
content
变量,以获取新的
id
。但是我认为你应该使用函数而不是覆盖变量

constprintname=(name=>console.log(`Hello${name}');
让name=“Mark”;
打印名(姓名);
name=“彼得”;

打印名(姓名)您可以让content成为一个返回html内容的函数,这样每次调用它时它都会进行计算。这样,如果id变量更改,content()返回的值也将更改:

varid='one';
变量内容=()=>`
ID为${ID}
`;
console.log(content());
id='2';

console.log(content())您可以让content成为一个返回html内容的函数,这样每次调用它时它都会进行计算。这样,如果id变量更改,content()返回的值也将更改:

varid='one';
变量内容=()=>`
ID为${ID}
`;
console.log(content());
id='2';

console.log(content())
您可以为
id
属性创建一个带有自定义setter的
id
函数,该函数将在每次设置新的
id
时更新
内容

函数id(){
变量id;
Object.defineProperty(此“id”{
得到(){
返回id;
},
设置(值){
id=值;
内容=`
ID为${ID}
`;
},
可枚举:正确,
可配置:true
});
};
var obj=新id();
变量内容=`
ID为${obj.ID}
`;
console.log(content)//id:未定义
app.innerHTML+=内容
obj.id=2;
console.log(content)//id:2
app.innerHTML+=内容
obj.id=‘你好,世界!’;
console.log(content)//id:'Hello World'
app.innerHTML+=内容

您可以使
id
成为一个带有
id
属性自定义setter的函数,它将使
内容在每次设置新的
id
时更新

函数id(){
变量id;
Object.defineProperty(此“id”{
得到(){
返回id;
},
设置(值){
id=值;
内容=`
ID为${ID}
`;
},
可枚举:正确,
可配置:true
});
};
var obj=新id();
变量内容=`
ID为${obj.ID}
`;
console.log(content)//id:未定义
app.innerHTML+=内容
obj.id=2;
console.log(content)//id:2
app.innerHTML+=内容
obj.id=‘你好,世界!’;
console.log(content)//id:'Hello World'
app.innerHTML+=内容

行id
您从未使用过。不,您不能只是更改
id
并将其反映在
内容中。当更改
id
时,您需要显式地重新构建
content
。这几乎就是函数的用途。或者使用类似content.replace的replace函数(${id}),id)@Arjit这是模板文本语法。“${id}”不再存在于字符串中。
row\u id
您从未使用过它。不,您不能只是更改
id
并将其反映在
内容中。当更改
id
时,您需要显式地重新构建
content
。这几乎就是函数的用途。或者使用类似content.replace的replace函数(${id}),id)@Arjit这是模板文本语法。字符串中不再存在“${id}”。使用自定义setter是使用此Javascript功能的一个很好的示例。使用自定义setter是使用此Javascript功能的一个很好的示例。基本上还不错。但是我认为fn应该返回基于args的文本,这一点都不坏。但是我认为fn应该返回一个基于args的文本,这太过工程化了。