---
title: DedicatedWorkerGlobalScope
slug: Web/API/DedicatedWorkerGlobalScope
tags:
  - API
  - DedicatedWorkerGlobalScope
  - Interface
  - Reference
  - Web Workers
  - Workers
  - 参考
  - 接口
translation_of: Web/API/DedicatedWorkerGlobalScope
---
<p>{{APIRef("Web Workers API")}}</p>

<p><strong><code>DedicatedWorkerGlobalScope</code></strong> 对象(也就是 {{domxref("Worker")}} 全局作用域)可以通过 {{domxref("window.self","self")}} 关键字来访问。一些在 worker 全局作用域下不可用的全局函数、命名空间对象以及构造器,也可以通过此对象使用。在 <a href="/zh-CN/docs/Web/JavaScript/Reference">JavaScript 参考</a>的 <a href="/zh-CN/docs/Web/Guide/Needs_categorization/Functions_available_to_workers">Web Workers 可以使用的函数和类</a>页面中,有列举这些特性。</p>

<h2 id="属性">属性</h2>

<p><em>该接口从 {{domxref("WorkerGlobalScope")}} 接口以及它的父接口 {{domxref("EventTarget")}} 继承属性,因此,此接口也实现了来自 {{domxref("WindowTimers")}}、{{domxref("WindowBase64")}} 和{{domxref("WindowEventHandlers")}} 的属性。</em></p>

<dl>
 <dt>{{domxref("DedicatedWorkerGlobalScope.name")}} {{readOnlyinline}}</dt>
 <dd>通过 {{domxref("Worker.Worker", "Worker()")}} 构造器创建 {{domxref("Worker")}} 时,可以选择为其设置一个名称,即此属性的值。这主要用于调试。</dd>
</dl>

<h3 id="从_WorkerGlobalScope_继承的属性">从 WorkerGlobalScope 继承的属性</h3>

<dl>
 <dt>{{domxref("WorkerGlobalScope.self")}}</dt>
 <dd>返回一个指向 <code>DedicatedWorkerGlobalScope</code> 本身的对象引用。</dd>
 <dt>{{domxref("WorkerGlobalScope.console")}} {{readOnlyinline}}</dt>
 <dd>返回与当前 worker 相关联的 {{domxref("Console")}}。</dd>
 <dt>{{domxref("WorkerGlobalScope.location")}} {{readOnlyinline}}</dt>
 <dd>返回与当前 worker 相关联的 {{domxref("WorkerLocation")}}。<code>WorkerLocation</code> 是一个 worker 专有的 location 对象,基本上是浏览器作用域下 {{domxref("Location")}} 的子集,但被被适配给了 worker。</dd>
 <dt>{{domxref("WorkerGlobalScope.navigator")}} {{readOnlyinline}}</dt>
 <dd>返回与当前 worker 相关联的 {{domxref("WorkerNavigator")}}。<code>WorkerNavigator</code> 是一个 worker 专有的 navigator 对象,基本上是浏览器作用域下 {{domxref("Navigator")}} 的子集,但被被适配给了 worker。</dd>
 <dt>{{domxref("WorkerGlobalScope.performance")}} {{readOnlyinline}} {{Non-standard_inline}}</dt>
 <dd>返回与当前 worker 相关联的 {{domxref("Performance")}},是一个正常的 performance 对象,但只有一部分属性和方法可用。</dd>
</dl>

<h3 id="事件处理器">事件处理器</h3>

<p><em>该接口从 {{domxref("WorkerGlobalScope")}} 接口以及它的父接口 {{domxref("EventTarget")}} 继承事件处理器,因此,此接口也实现了来自 {{domxref("WindowTimers")}}、{{domxref("WindowBase64")}} 和{{domxref("WindowEventHandlers")}} 的事件处理器。</em></p>

<dl>
 <dt>{{domxref("DedicatedWorkerGlobalScope.onmessage")}}</dt>
 <dd>Is an {{event("Event_handlers", "event handler")}} representing the code to be called when the {{event("message")}} event is raised. These events are of type {{domxref("MessageEvent")}} and will be called when the worker receives a message from the document that started it (i.e. from the {{domxref("Worker.postMessage")}} method.)</dd>
 <dt>{{domxref("DedicatedWorkerGlobalScope.onmessageerror")}}</dt>
 <dd>Is an {{event("Event_handlers", "event handler")}} representing the code to be called when the {{event("messageerror")}} event is raised.</dd>
</dl>

<h2 id="方法">方法</h2>

<p><em>该接口从 {{domxref("WorkerGlobalScope")}} 接口以及它的父接口 {{domxref("EventTarget")}} 继承方法,因此,此接口也实现了来自 {{domxref("WindowTimers")}}、{{domxref("WindowBase64")}} 和{{domxref("WindowEventHandlers")}} 的方法。</em></p>

<dl>
 <dt>{{domxref("WorkerGlobalScope.close()")}}</dt>
 <dd>抛弃当前 <code>WorkerGlobalScope</code> 的 event loop 中所有正在排队的任务,关闭当前作用域。</dd>
 <dt>{{domxref("DedicatedWorkerGlobalScope.postMessage")}}</dt>
 <dd>向该 worker 的父文档发送消息——消息可以是任何 Javascript 对象。</dd>
</dl>

<h3 id="从_WorkerGlobalScope_继承的方法">从 WorkerGlobalScope 继承的方法</h3>

<dl>
 <dt>{{domxref("WorkerGlobalScope.dump()")}} {{non-standard_inline}}</dt>
 <dd>向控制台写入一条消息。</dd>
 <dt>{{domxref("WorkerGlobalScope.importScripts()")}}</dt>
 <dd>向当前 worker 的作用域导入一或更多条脚本。可按需导入任意数量的脚本,使用逗号分割参数。比如: <code>importScripts('foo.js', 'bar.js');</code></dd>
</dl>

<h3 id="从其他来源实现的方法">从其他来源实现的方法</h3>

<dl>
 <dt>{{domxref("WindowBase64.atob()")}}</dt>
 <dd>解码使用 base-64 编码的字符串数据。</dd>
 <dt>{{domxref("WindowBase64.btoa()")}}</dt>
 <dd>从字符串生成使用 base-64 编码的 ASCII 字符串。</dd>
 <dt>{{domxref("WindowTimers.clearInterval()")}}</dt>
 <dd>取消使用 {{domxref("WindowTimers.setInterval()")}} 创建的定时操作。</dd>
 <dt>{{domxref("WindowTimers.clearTimeout()")}}</dt>
 <dd>取消使用 {{domxref("WindowTimers.setTimeout()")}} 创建的定时操作。</dd>
 <dt>{{domxref("WindowTimers.setInterval()")}}</dt>
 <dd>每隔一定时间执行一次给定函数。</dd>
 <dt>{{domxref("WindowTimers.setTimeout()")}}</dt>
 <dd>延迟一定时间执行给定函数。</dd>
</dl>

<h2 id="事件">事件</h2>

<dl>
 <dt><code><a href="/zh-CN/docs/Web/API/DedicatedWorkerGlobalScope/message_event">message</a></code></dt>
 <dd>Fired when the worker receives a message from its parent.<br>
 Also available via the <code><a href="/zh-CN/docs/Web/API/DedicatedWorkerGlobalScope/onmessage">onmessage</a></code> property.</dd>
 <dt><code><a href="/zh-CN/docs/Web/API/DedicatedWorkerGlobalScope/messageerror_event">messageerror</a></code></dt>
 <dd>Fired when a worker receives a message that can't be deserialized.<br>
 Also available via the <code><a href="/zh-CN/docs/Web/API/DedicatedWorkerGlobalScope/onmessageerror">onmessageerror</a></code> property.</dd>
</dl>

<h2 id="规范">规范</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">规范</th>
   <th scope="col">状态</th>
   <th scope="col">备注</th>
  </tr>
  <tr>
   <td>{{SpecName('HTML WHATWG', '#dedicatedworkerglobalscope', 'DedicatedWorkerGlobalScope')}}</td>
   <td>{{Spec2('HTML WHATWG')}}</td>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="浏览器兼容性">浏览器兼容性</h2>



<p>{{Compat("api.DedicatedWorkerGlobalScope")}}</p>

<h2 id="参见">参见</h2>

<ul>
 <li>{{domxref("Worker")}}</li>
 <li>{{domxref("WorkerGlobalScope")}}</li>
 <li><a href="/zh-CN/docs/Web/Guide/Performance/Using_web_workers">使用 web workers</a></li>
 <li><a href="/zh-CN/docs/Web/Guide/Needs_categorization/Functions_available_to_workers">Web Workers 可以使用的函数和类</a></li>
</ul>