WorkerGlobalScope: self 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能仅在 Web Workers 中可用。

WorkerGlobalScope 接口的只读属性 self 返回对 WorkerGlobalScope 本身的引用。在大多数情况下,它是一个特定的作用域,例如 DedicatedWorkerGlobalScopeSharedWorkerGlobalScopeServiceWorkerGlobalScope

一个全局作用域对象(根据你正在处理的工作线程类型而有所不同,如上所示)。

示例

如果你调用

js
console.log(self);

在工作线程内部,你将在控制台中看到与该工作线程对象类型相同的全局作用域,如下所示:

DedicatedWorkerGlobalScope {
undefined: undefined, Infinity: Infinity, Math: MathConstructor, NaN: NaN, Intl: Object…}
    Infinity: Infinity
    Array: function Array() { [native code] }
      arguments: null
      caller: null
      isArray: function isArray() { [native code] }
      length: 1
      name: "Array"
      observe: function observe() { [native code] }
      prototype: Array[0]
      unobserve: function unobserve() { [native code] }
      __proto__: function Empty() {}
      <function scope>
    ArrayBuffer: function ArrayBuffer() { [native code] }
    Blob: function Blob() { [native code] }
    Boolean: function Boolean() { [native code] }
    DataView: function DataView() { [native code] }
    Date: function Date() { [native code] }
    DedicatedWorkerGlobalScope: function DedicatedWorkerGlobalScope() { [native code] }
    Error: function Error() { [native code] }
// etc. etc.

这提供了一个可用于该工作线程作用域的所有对象的完整列表,因此如果你想查看某个对象是否可用于你的工作线程,这是一个非常有用的测试。我们还维护了 Web Workers 可用的函数和类 列表。

规范

规范
HTML
# dom-workerglobalscope-self-dev

浏览器兼容性

另见

WorkerGlobalScope