我正在使用window.postMessage将对象从父窗口传输到iframe。但是,当我们在iframe上收到对象时,该对象会丢失 proto 。有没有办法解决此问题
答案 0 :(得分:1)
Window.postMessage
使用结构化克隆算法通过递归克隆在边界之间传递对象。它具有局限性,如MDN page
- 不保留RegExp对象的lastIndex属性。
- 属性描述符,setter,getter和类似类似元数据的功能不是 重复的。例如,如果使用属性描述符将对象标记为只读,则该对象将被重复读取/写入,因为这是默认设置。
- 原型链没有遍历或重复。
将原型链作为对象与数据/有效载荷一起发送,并在接收器端使用Object.create
或Object.setprototypeof
方法来纠正接收对象的原型。