在Chrome中发送给Web工作者时克隆的对象,而不是IE10

时间:2015-10-17 00:19:40

标签: javascript

我试图更好地了解浏览器在将值发送给网络工作者时是否/如何克隆值。

我正在调试我们正在使用的js库 - 他们使用内部调用delete d.children的网络工作者 - 这不会影响发送给网络工作者的原始对象 - < strong> ,除了IE10

工作人员支持结构化克隆算法,以便可以传递对象 - 但我不明白为什么这不会影响IE。他们克隆吗?

我正在调试jstree - 不幸的是。

https://github.com/vakata/jstree/blob/master/dist/jstree.js#L1502

相关代码是他们在Web worker中调用的函数。

func = function (data, undefined) {

在这个函数中,他们最终会调用delete d.children,所以我在顶部手动尝试进行测试。

此行不会影响Chrome中的原始数据对象,IE10 / Windows 7中的DOES

delete data.dat[0].children; 

在IE10中,我们提供的数据对象jstree(来自xhr调用的结果)突然失去了children属性。

该工作人员在此处传递数据:

https://github.com/vakata/jstree/blob/master/dist/jstree.js#L1847

w.postMessage(args);

再次尝试手动删除:

delete args.dat[0].children;

是否在所有浏览器中按预期删除该属性。

0 个答案:

没有答案