---
title: WorkerGlobalScope
slug: Web/API/WorkerGlobalScope
tags:
  - API
  - Interface
  - NeedsBrowserCompatibility
  - Reference
  - WorkerGlobalScope
  - Workers
translation_of: Web/API/WorkerGlobalScope
---
<p>{{APIRef("Web Workers API")}}</p>

<p><a href="/ja/docs/Web/API/Web_Workers_API">Web Workers API</a> の <code><strong>WorkerGlobalScope</strong></code> インターフェースは、いずれかの worker のスコープを表すインターフェースです。worker はブラウジングコンテクストを持ちません; このスコープには、通常 {{domxref("Window")}} オブジェクトによって伝えられた情報が含まれます — この場合、イベントハンドラやコンソール、関連する {{domxref("WorkerNavigator")}} オブジェクトのことです。ぞれぞれの <code>WorkerGlobalScope</code> は独自のイベントループを持ちます。</p>

<p>このインターフェースは通常、 それぞれの work タイプによって特化されます: dedicated workers   のための {{domxref("DedicatedWorkerGlobalScope")}} と shared workers のための {{domxref("SharedWorkerGlobalScope")}}、<a href="/ja/docs/Web/API/ServiceWorker_API">ServiceWorker</a> のための {{domxref("ServiceWorkerGlobalScope")}} です。<code>self</code> プロパティはそれぞれのコンテキストに特化したスコープを返します。</p>

<h2 id="プロパティ">プロパティ</h2>

<p><em>このインターフェースは、 {{domxref("EventTarget")}} インターフェースから継承したプロパティと、 {{domxref("WindowTimers")}}、 {{domxref("WindowBase64")}}、 {{domxref("WindowEventHandlers")}} からのプロパティを実装しています。</em></p>

<h3 id="標準プロパティ">標準プロパティ</h3>

<dl>
 <dt>{{domxref("WorkerGlobalScope.caches")}} {{readOnlyinline}}</dt>
 <dd>現在のコンテキストに関連した {{domxref("CacheStorage")}} オブジェクトを返す。このオブジェクトは、オフラインで使用するために資産を保存することやリクエストに対してカスタムレスポンスを生成するなどの  <a href="/ja/docs/Web/API/ServiceWorker_API">service worker</a> の機能を使用できる。</dd>
 <dt>{{domxref("WorkerGlobalScope.navigator")}} {{readOnlyinline}}</dt>
 <dd>worker に関連した {{domxref("WorkerNavigator")}} を返す。これは特定の navigator オブジェクト、主にブラウジングスコープの {{domxref("Navigator")}} ではなく、worker に適合する。</dd>
 <dt>{{domxref("WorkerGlobalScope.self")}} {{readOnlyinline}}</dt>
 <dd><code>WorkerGlobalScope</code> 自身の参照を返す。ほとんどの場合、 {{domxref("DedicatedWorkerGlobalScope")}} や {{domxref("SharedWorkerGlobalScope")}} 、{{domxref("ServiceWorkerGlobalScope")}} のような特定のスコープである。</dd>
 <dt>{{domxref("WorkerGlobalScope.location")}} {{readOnlyinline}}</dt>
 <dd>worker に関連した {{domxref("WorkerLocation")}} を返す。これは特定の location オブジェクト、主にブラウジングスコープの {{domxref("Location")}} ではなく、worker に適合する。</dd>
</dl>

<h3 id="非標準プロパティ">非標準プロパティ</h3>

<dl>
 <dt>{{domxref("WorkerGlobalScope.performance")}} {{readOnlyinline}}</dt>
 <dd>work に関連した {{domxref("Performance")}} を返す。これは、プロパティとメソッドのサブセットのみが worker で利用できることを除いて、通常の performance オブジェクトである。</dd>
 <dt>{{domxref("WorkerGlobalScope.console")}} {{readOnlyinline}} {{Non-standard_inline}}</dt>
 <dd>worker に関連した {{domxref("Console")}} オブジェクトを返す。</dd>
</dl>

<h3 id="イベントハンドラ">イベントハンドラ</h3>

<p><em>このインターフェースは、{{domxref("EventTarget")}} インターフェースから継承したイベントハンドラと {{domxref("WindowTimers")}} と {{domxref("WindowBase64")}} のイベントハンドラを実装しています。</em></p>

<dl>
 <dt>{{domxref("WorkerGlobalScope.onerror")}}</dt>
 <dd>{{event("error")}} イベントが発生したときに呼び出されるコードを表す {{event("Event_handlers", "event handler")}}。</dd>
 <dt>{{domxref("WorkerGlobalScope.onoffline")}}</dt>
 <dd>{{event("offline")}} イベントが発生したときに呼び出されるコードを表す {{event("Event_handlers", "event handler")}}。</dd>
 <dt>{{domxref("WorkerGlobalScope.ononline")}}</dt>
 <dd>{{event("online")}} イベントが発生したときに呼び出されるコードを表す {{event("Event_handlers", "event handler")}}。</dd>
 <dt>{{domxref("WorkerGlobalScope.onlanguagechange")}}</dt>
 <dd>ユーザーの選択言語を変更したときに、 global/worker スコープオブジェクトで発火する {{event("Event_handlers", "event handler")}}。</dd>
</dl>

<dl>
 <dt>{{domxref("WorkerGlobalScope.onclose")}} {{non-standard_inline}}</dt>
 <dd>{{event("close")}} イベントが発生したときに呼び出されるコードを表す {{event("Event_handlers", "event handler")}}。</dd>
 <dt>{{domxref("WorkerGlobalScope.onrejectionhandled")}} {{non-standard_inline}}</dt>
 <dd><a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise" title="The Promise object is used for deferred and asynchronous computations. A Promise represents an operation that hasn't completed yet, but is expected in the future."><code>Promise</code></a> の rejection イベントを制御するためのイベントハンドラ。</dd>
 <dt>{{domxref("WorkerGlobalScope.onunhandledrejection")}} {{non-standard_inline}}</dt>
 <dd>制御されていない <a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise" title="The Promise object is used for deferred and asynchronous computations. A Promise represents an operation that hasn't completed yet, but is expected in the future."><code>Promise</code></a> の rejection イベントのためのイベントハンドラ。</dd>
</dl>

<h2 id="メソッド">メソッド</h2>

<p><em>このインターフェースは、{{domxref("EventTarget")}} インターフェースから併称したメソッドと{{domxref("WindowTimers")}}、 {{domxref("WindowBase64")}}、 {{domxref("WindowEventHandlers")}}、 {{domxref("GlobalFetch")}} のメソッドを実装しています。</em></p>

<h3 id="標準メソッド">標準メソッド</h3>

<dl>
 <dt>{{domxref("WorkerGlobalScope.close()")}}</dt>
 <dd>効果的に特定のスコープを閉じ、 <code>WorkerGlobalScope</code> のイベントループにキューされているタスクを破棄する。</dd>
 <dt>{{domxref("WorkerGlobalScope.importScripts()")}}</dt>
 <dd>worker のスコープに 1 つ以上のスクリプトをインポートする。カンマ区切りで任意の数を指定できる。例:<code> importScripts('foo.js', 'bar.js');</code></dd>
</dl>

<h3 id="非標準メソッド">非標準メソッド</h3>

<dl>
 <dt>{{domxref("WorkerGlobalScope.dump()")}} {{non-standard_inline}}</dt>
 <dd>標準出力にメッセージを記述できる — たとえば、ターミナルに。これは Firefox の {{domxref("window.dump")}} と同様に worker のためのものである。</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("ImageBitmapFactories.createImageBitmap()")}}</dt>
 <dd>異なるさまざまな画像ソースを受け入れ、{{domxref("ImageBitmap")}} を解決する {{domxref("Promise")}} を返す。</dd>
 <dt>{{domxref("GlobalFetch.fetch()")}}</dt>
 <dd>リソースの取得プロセスを開始する。</dd>
 <dt>{{domxref("WindowTimers.setInterval()")}}</dt>
 <dd>X ミリ秒ごとの処理実行をスケジューリングする。</dd>
 <dt>{{domxref("WindowTimers.setTimeout()")}}</dt>
 <dd>遅延処理を設定する。</dd>
</dl>

<h2 id="例">例</h2>

<p>コード内で <code>WorkerGlobalScope</code> に直接アクセスすることはありません; しかし、{{domxref("DedicatedWorkerGlobalScope")}} や {{domxref("SharedWorkerGlobalScope")}} のような特定のグローバルスコープからプロパティやメソッドが継承されています。たとえば、worker にほかのスクリプトをインポートして、次の 2 行を使用して worker スコープの <code>navigator</code> オブジェクトのコンテンツを表示できます:</p>

<pre class="brush: js">importScripts('foo.js');
console.log(navigator);</pre>

<div class="note">
<p><strong>ノート:</strong> worker スクリプトのグローバルスコープは、実行している worker グローバルスコープ({{domxref("DedicatedWorkerGlobalScope")}} やそのほか)と <code>WorkerGlobalScope</code> からメソッドやプロパティなどを継承している すべての worker グローバルスコープで有効であるため、上記のように親オブジェクトを指定しなくとも実行できます。</p>
</div>

<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', '#workerglobalscope', 'WorkerGlobalScope')}}</td>
   <td>{{Spec2('HTML WHATWG')}}</td>
   <td>{{SpecName("Web Workers")}} から変更なし。</td>
  </tr>
  <tr>
   <td>{{SpecName('Service Workers')}}</td>
   <td>{{Spec2('Service Workers')}}</td>
   <td><code>caches</code> を定義。</td>
  </tr>
  <tr>
   <td>{{SpecName('Web Workers', '#workerglobalscope', 'WorkerGlobalScope')}}</td>
   <td>{{Spec2('Web Workers')}}</td>
   <td>初期定義。</td>
  </tr>
 </tbody>
</table>

<h2 id="ブラウザ実装状況">ブラウザ実装状況</h2>

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

<h2 id="関連項目">関連項目</h2>

<ul>
 <li>そのほかのグローバルオブジェクトインターフェース: {{domxref("Window")}}、 {{domxref("DedicatedWorkerGlobalScope")}}、 {{domxref("SharedWorkerGlobalScope")}}、 {{domxref("ServiceWorkerGlobalScope")}}</li>
 <li>そのほかの Worker 関連インターフェース: {{domxref("Worker")}}、{{domxref("WorkerLocation")}}、 {{domxref("WorkerGlobalScope")}}、 {{domxref("ServiceWorkerGlobalScope")}}</li>
 <li><a href="/ja/docs/Web/Guide/Performance/Using_web_workers">Web Worker を使用する</a></li>
</ul>