Javascript 如何在js中对object使用eval函数?

Javascript 如何在js中对object使用eval函数?,javascript,eval,Javascript,Eval,我试着让console.logevalformat在控制台上写黄色的眼睛。如何在格式字符串中从头发更改为obje.hair和从眼睛更改为obje.eyes?eval。 改用类似的方式: var obj={头发:黄色,眼睛:蓝色}; var格式={hair}{eyes}; //选项1:手动更换 var result=format.replace'{hair}',obj.hair.replace'{eyes}',obj.eyes; console.logresult; //选项2:自动更换 var

我试着让console.logevalformat在控制台上写黄色的眼睛。如何在格式字符串中从头发更改为obje.hair和从眼睛更改为obje.eyes?

eval。 改用类似的方式:

var obj={头发:黄色,眼睛:蓝色}; var格式={hair}{eyes}; //选项1:手动更换 var result=format.replace'{hair}',obj.hair.replace'{eyes}',obj.eyes; console.logresult; //选项2:自动更换 var结果=格式; obj中的forvar键{ result=result.replace'{'+key+'}',obj[key]; } console.logresult 使用object.key按预期获取

var obje={头发:黄色,眼睛:蓝色}; var格式=obje.hair+“”+obje.eyes;
console.logevalformat;我知道这是工作,但我必须使用eval函数。我该怎么办?你为什么要用eval,@Emrah?“为什么这是一个要求?如果一个问题是如何开车撞到树上而不损坏我的车,唯一正确的答案是:不要开车撞到那棵树上,@JaromandaX。”。使用eval就像开车撞到树上一样。@Emrah,你不能用我的一个例子替换格式字符串吗?如果没有,为什么不呢?我不想手动编辑格式字符串,我想使用eval函数。有办法解决这个问题吗?埃姆拉,你到底想解决什么问题?为什么必须使用eval?问题是,若任何格式的单词包含obje列名,则该单词可以像obje列名一样更改。例如,格式中的头发应为obje.hair。因为eval函数接受obje.hair而不是hair。显然,此代码不能代表问题obje[format.split[0]];//黄色obje[format.split[1]];//blueI使用object.key和format显示黄色+“”+蓝色,但该字符串在eval函数中不起作用。由于这个原因,应该是obje.hair和obje.eyesobject.key,而不是黄色和蓝色,这意味着我使用了广义术语。在你的例子中,对象是obje,关键是头发或眼睛。我理解你的意思。如果有一个头发的格式,我应该改变obje.key。这个解决方案可能有效。你能给我一个代码把单词从hair改成obje.key吗。另外,如果我能做到,我会尝试这个解决方案。@Emrah对不起,我不能清楚地告诉你。你到底想要什么?
var obje = {hair: "yellow", eyes: "blue"};
var format = "hair + ' ' + eyes";
console.log(eval(format));