Javascript 什么是';自我';网络工作者中的关键词平均值
我不明白7,8,9行:Javascript 什么是';自我';网络工作者中的关键词平均值,javascript,web-worker,self,Javascript,Web Worker,Self,我不明白7,8,9行: var worker = new Worker('doWork.js'); worker.addEventListener('message', function(e) { console.log('Worker said: ', e.data); // Here it send's the data. }, false); worker.postMessage('Hello World'); // Send data to our worker. /
var worker = new Worker('doWork.js');
worker.addEventListener('message', function(e) {
console.log('Worker said: ', e.data); // Here it send's the data.
}, false);
worker.postMessage('Hello World'); // Send data to our worker.
//7 self.addEventListener('message', function(e) {
//8 self.postMessage(e.data);
//9 }, false);
这段代码在做什么?
1.哪一代码行触发第7行中的消息事件?
2.第8行的postMessage中传递了哪些数据?
3.self在这里做什么?关键字
self
用于接近工人的API,这意味着无论范围如何(即使是关闭),您都可以访问工人的API(我不确定是否可以将self
重新声明为其他内容并释放Worker的API引用,但我相信它受JS保护,因此您无法覆盖它)
以及以下几行:
self.addEventListener('message', function(e) {
self.postMessage(e.data);
}, false);
我们只需为'message'
事件添加一个事件侦听器,它会将事件中的数据发送回生成它的上下文中的webworker引用(最常见的是当前浏览器线程或父工作线程)。我们可以引用false
布尔值确定的内容:
useCapture
可选如果为true,useCapture表示用户希望
启动捕获。在启动捕获后
指定的类型将在
被分派到DOM树中它下面的任何EventTarget
在树中向上冒泡的消息不会触发侦听器
指定使用捕获。请参阅DOM级别3事件和JavaScript事件
订购详细说明。如果未指定,请使用捕获
默认为false
注意:对于附加到事件的事件侦听器
目标;事件处于目标阶段,而不是捕获和
冒泡阶段。目标阶段中的事件将触发所有侦听器
在元素上,而不考虑useCapture参数
注意:使用捕获
只有在最新版本的主流浏览器中才成为可选的;
例如,在Firefox6之前它不是可选的
提供此参数以实现最广泛的兼容性
wantsUntrusted
如果为true,侦听器将接收合成事件
由web内容发送(chrome的默认值为false,true
此参数仅在Gecko和中可用
主要用于加载项中的代码和浏览器本身。请参阅
一个应用程序的特权页和非特权页之间的交互
例如
发件人:
关键字self
的更多技术说明:
WorkerGlobalScope接口的自只读属性返回
对WorkerGlobalScope本身的引用。大多数情况下,它是
特定范围,如专用工作全局范围,
SharedWorkerGlobalScope或ServiceWorkerGlobalScope
引用自:“Self”可能指的是一个对象(“this”),但是,它可能位于匿名函数的上下文中,因此他们可能使用了“Self”而不是.bind()方法。你能发布其余的代码吗?我肯定还有很多。这是对网络工作者的引用,因为他们没有浏览上下文和
窗口对象。@JoshBeam我自己也这么想,结果是完全不同的世界。看,我不明白为什么会有这么多人投反对票。这是个好问题。@php\u nub\qq、 很有趣,谢谢你指出这一点!我撤回了我的投票,我很想知道这个问题的答案。谢谢你的回答,塔克斯卡拉!没问题。很高兴帮助:)