Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么是';自我';网络工作者中的关键词平均值_Javascript_Web Worker_Self - Fatal编程技术网

Javascript 什么是';自我';网络工作者中的关键词平均值

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. /

我不明白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.



 //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、 很有趣,谢谢你指出这一点!我撤回了我的投票,我很想知道这个问题的答案。谢谢你的回答,塔克斯卡拉!没问题。很高兴帮助:)