Как использовать eval () для назначения одного объекта другому - PullRequest
0 голосов
/ 01 октября 2018

Отказ от ответственности: я знаю, что вы не должны использовать 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 голосов
/ 01 октября 2018

Единственное, что вызывает у вас ошибку, это то, что ваш l.toString() вызов возвращает строку "[Object object]".

Попробуйте использовать l = JSON.stringify(l) вместо.

Хотя, чтобы вашработа с фрагментом кода, вам нужно вообще исключить строковое значение l.Вместо этого укажите l как просто строку "l", чтобы заставить eval работать как положено.

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