【发布时间】:2015-12-27 13:30:00
【问题描述】:
JavaScript 中的WebWorkers API 允许您使用浏览器中的worker.postMessage 和Worker 中的postMessage 在工作线程和主线程之间传递对象。
我一直在玩,不仅postMessage 传递了数组和对象,甚至还传递了 RegExp 实例,所以我假设这些对象实现了一些接口。比如字符串转换,你实现.toString方法:
"" + {toString: function() {return "Hello world!"}}; //prints `Hello world!`
同样,你可以实现toJSON方法:
JSON.stringify({toJSON: alert});
//Throws `TypeError: 'alert' called on an object that does not implement interface Window.`
// - demonstrating that toJSON is being called
我的问题是,我应该为postMessage 实施什么来让我的Player 类通过通信渠道:
function Player(name) {
this.name = name;
}
Player.prototype = Object.create(EventEmitter2.prototype);
我有意在此处添加了继承部分——我需要让对象保持实例,而不仅仅是数据持有者。就像RegExp 一样,我需要通过我定义的一个或多个方法对其进行重构 - 如果所需的上下文(类型定义,例如EventEmitter2)未在新范围内定义,则必须失败.
【问题讨论】:
标签: javascript interface web-worker