如何使用Object.assign仅克隆属性?

时间:2017-11-03 20:44:59

标签: javascript iframe

我正在尝试发送一条消息,其内容源自Javascript代理,postMessage()方法失败,除非我在新对象上手动复制代理的属性:

Failed to execute 'postMessage' on 'Window': [object Object] could not be cloned.]

但是,如果我通过样板代码手动分配所有字段,如此

 var b = {};
 b.myField = a.myField;

postMessage工作正常。我所期待的是,以下内容也可以正常工作:

var b = Object.assign({},a);

但在这种情况下,它会失败并显示相同的消息。为什么是Object.assign克隆属性以及如何调试克隆错误?

1 个答案:

答案 0 :(得分:0)

我也遇到了Lightning中的Object.assign问题。我做得很好,使用:

var b = JSON.parse(JSON.stringify(a));

我当时的问题是,Object.assign({},a)通过引用而不是通过值进行克隆。 (我知道这只能回答你问题的第二部分,但也许到目前为止你可以用它作为解决方法)

我刚刚读到你正在使用Window函数。请注意,由于locker service

,窗口对象是闪电中的包装对象
相关问题