由于Web-Worker JSON在线程之间序列化数据,所以这样的事情不起作用:
worker.js
function Animal() {}
Animal.prototype.foobar = function() {}
self.onmessage = function(e) {
self.postMessage({animal: new Animal()})
}
main.js
let worker = new Worker('worker.js')
worker.onmessage = function(e) {
console.log(e.data)
}
worker.postMessage('go!')
结果将是一个简单的对象,失去了foobar
原型方法。
是否可以将自定义对象传回主线程而不会丢失其原型方法?就像,ArrayBuffer
这可能吗?我不熟悉那些东西,所以我有点失落。
答案 0 :(得分:1)
在onmessage中你是JSON.parse(m,reviver)
| AddOnFeature |
|-------------------|
| EnterpriseNotices |
| WeatherToPanel |