Spec-Zone.ru › JavaScript

SharedArrayBuffer[Symbol.species]

Базовая поддержка Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с декабря 2021 года.

Статическое свойство доступа SharedArrayBuffer[Symbol.species] возвращает конструктор, используемый для создания возвращаемых значений из методов SharedArrayBuffer.

Предупреждение: Наличие [Symbol.species] позволяет выполнять произвольный код и может создавать уязвимости безопасности. Это также значительно затрудняет некоторые оптимизации. Разработчики движков исследуют возможность удаления этой функции. По возможности избегайте ее использования.

Синтаксис

SharedArrayBuffer[Symbol.species]

Возвращаемое значение

Значение конструктора (this), у которого был вызван get [Symbol.species]. Возвращаемое значение используется для создания возвращаемых значений из методов буфера массива, которые создают новый буфер массива.

Описание

Свойство доступа [Symbol.species] возвращает конструктор по умолчанию для объектов SharedArrayBuffer. Конструкторы подклассов могут переопределить его для изменения назначения конструктора. Реализация по умолчанию в основном выглядит так:

// Hypothetical underlying implementation for illustration
class SharedArrayBuffer {
  static get [Symbol.species]() {
    return this;
  }
}

Благодаря этой полиморфной реализации, [Symbol.species] производных подклассов также по умолчанию будет возвращать сам конструктор.

class SubArrayBuffer extends SharedArrayBuffer {}
SubArrayBuffer[Symbol.species] === SubArrayBuffer; // true

При вызове методов буфера массива, которые не изменяют существующий массив, а возвращают новый экземпляр буфера массива (например, slice()), будет доступен constructor[Symbol.species] массива. Возвращаемый конструктор будет использоваться для создания возвращаемого значения метода буфера массива.

Примеры

Species в обычных объектах

Свойство [Symbol.species] возвращает функцию конструктора по умолчанию, которая является конструктором SharedArrayBuffer для SharedArrayBuffer.

SharedArrayBuffer[Symbol.species]; // function SharedArrayBuffer()

Species в производных объектах

В экземпляре пользовательского подкласса SharedArrayBuffer, такого как MySharedArrayBuffer, вид MySharedArrayBuffer — это конструктор MySharedArrayBuffer. Однако вы можете захотеть переопределить это, чтобы возвращать родительские объекты SharedArrayBuffer в методах вашего производного класса:

class MySharedArrayBuffer extends SharedArrayBuffer {
  // Overwrite MySharedArrayBuffer species to the parent SharedArrayBuffer constructor
  static get [Symbol.species]() {
    return SharedArrayBuffer;
  }
}

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-sharedarraybuffer-%symbol.species%

Совместимость с браузерами

Настольные компьютеры Мобильные Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
@@species
68
79
79
55
15.2
89
79
79
15.2
15.0
Нет
15.2
1.0.0
1.0
8.10.0

См. также

  • SharedArrayBuffer
  • Symbol.species

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/Symbol.species

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API