我有一个名为bookings的对象,它包含多个属性。我想使用Object.assign方法扩展该对象,示例代码如下:
let data = Object.assign(booking, {
hiw: event.hiw[booking.locale],
tip: event.tip[booking.locale],
start: moment(event.start).format('L')
});
但是当我打印数据时,结果将是来自源(booking)相同的对象,因此hiw
、tip
和start
将被忽略,但是...如果我尝试执行:
let data = Object.assign({}, {
hiw: event.hiw[booking.locale],
tip: event.tip[booking.locale],
start: moment(event.start).format('L')
});
这将完美地工作。
我的问题是:我在这里做错了什么?为什么我不能扩展 booking
,但我可以扩展空对象?
这绝对不是异步代码的问题,当我尝试扩展 booking 时,它已经存在并具有所有属性。
我还尝试使用 underscore 的 extend
方法,行为完全相同。
hiw
,tip
或start
不是booking
的可枚举或自有属性吗?https://jsfiddle.net/mikemccaughan/2959resk/ - Heretic Monkeylet
块赋值还是在你尝试分配的属性中。我制作了一个非常简单的 模拟,它可以工作。 - Mark C.booking
的方式上。 - Barmar