如何使用eval()将一个对象分配给另一个

时间:2018-10-01 05:36:22

标签: javascript eval

免责声明:我知道您不应该使用eval(),但是如果我有其他选择,我不会。这一点,您必须信任。

下面的这段代码为什么会引发错误,我该如何做一个等效的表达式?

let r = ".b.b = a.b.b"
let l = {b:{b:5}}
let a = {b:{b:0}}
l.toString()
alert(eval(l+r))

1 个答案:

答案 0 :(得分:2)

导致您出错的一件事是您的l.toString()调用返回了字符串"[Object object]"

尝试改用l = JSON.stringify(l)

尽管,要使代码段正常工作,您需要完全省略字符串l。而是将l仅作为字符串"l"进行引用,以使评估工作按预期进行。

let r = ".b.b = a.b.b"
let l = {b:{b:5}}
let a = {b:{b:0}}
console.log(eval("l"+r))