У меня есть один бронирования объекта называется, и в нем у меня есть несколько свойств, и я хочу продлить с Object.assign, как это:Object.assign не работает, как ожидалось
let data = Object.assign(booking, {
hiw: event.hiw[booking.locale],
tip: event.tip[booking.locale],
start: moment(event.start).format('L')
});
Но когда я печатаю данные , то результат будет тот же объект из источника (бронирование), так hiw
, tip
и start
будут игнорироваться, но ... если я пытаюсь сделать:
let data = Object.assign({}, {
hiw: event.hiw[booking.locale],
tip: event.tip[booking.locale],
start: moment(event.start).format('L')
});
Это будет работать идеально.
Мой вопрос: что я делаю неправильно здесь? Почему я не могу продлить booking
, и я могу расширить пустой объект?
Это определенно не проблема с асинхронным кодом, когда я пытаюсь продлить бронирование, он уже существует со всеми свойствами внутри.
Я также пытался использовать символ подчеркивания extend
, и поведение в точности то же самое.
Можете ли вы показать, что у вас есть, когда вы печатаете бронирование непосредственно перед вызовом назначить а также после? – jonasnas
Это похоже на работу в Chrome, который (теоретически) использует тот же движок, что и node.js. Являются ли 'hiw',' tip' или 'start' неперечислимыми или собственными свойствами' booking'? https://jsfiddle.net/mikemccaughan/2959resk/ –
Мне интересно, является ли ошибка в задании блока 'let' или в свойствах, которые вы пытаетесь назначить. Я собрал очень легкий макет (https://jsfiddle.net/GentleMaN/h10wwo5h/), и он работает. –