Array.of()
Baseline Широко доступен
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2016 года.
Статический метод Array.of() создает новый экземпляр Array из переменного числа аргументов, независимо от количества или типа аргументов.
Попробуйте
console.log(Array.of("foo", 2, "bar", true));
// Expected output: Array ["foo", 2, "bar", true]
console.log(Array.of());
// Expected output: Array []
Синтаксис
Array.of() Array.of(element1) Array.of(element1, element2) Array.of(element1, element2, /* …, */ elementN)
Параметры
-
element1, …,elementN - Элементы, используемые для создания массива.
Возвращаемое значение
Новый экземпляр Array.
Описание
Разница между Array.of() и конструктором Array() заключается в обработке одиночных аргументов: Array.of(7) создает массив с одним элементом, 7, в то время как Array(7) создает пустой массив со свойством length, равным 7. (Это подразумевает массив из 7 пустых слотов, а не слотов с фактическими значениями undefined.)
Array.of(7); // [7] Array(7); // array of 7 empty slots Array.of(1, 2, 3); // [1, 2, 3] Array(1, 2, 3); // [1, 2, 3]
Метод Array.of() является универсальным методом-фабрикой. Например, если подкласс Array наследует метод of(), унаследованный метод of() вернет новые экземпляры подкласса вместо экземпляров Array. Фактически, значение this может быть любой конструкторной функцией, которая принимает один аргумент, представляющий длину нового массива, и конструктор будет вызван с количеством аргументов, переданных в of(). Окончательное значение length будет установлено снова после назначения всех элементов. Если значение this не является конструкторной функцией, вместо нее используется обычный конструктор Array.
Примеры
Использование Array.of()
Array.of(1); // [1] Array.of(1, 2, 3); // [1, 2, 3] Array.of(undefined); // [undefined]
Вызов of() на не-массивных конструкторах
Метод of() можно вызывать для любой конструкторной функции, которая принимает один аргумент, представляющий длину нового массива.
function NotArray(len) {
console.log("NotArray called with length", len);
}
console.log(Array.of.call(NotArray, 1, 2, 3));
// NotArray called with length 3
// NotArray { '0': 1, '1': 2, '2': 3, length: 3 }
console.log(Array.of.call(Object)); // [Number: 0] { length: 0 }
Когда значение this не является конструктором, возвращается обычный объект Array.
console.log(Array.of.call({}, 1)); // [ 1 ]
Спецификации
Совместимость с браузерами
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | |
of |
45 |
12 |
25 |
26 |
9 |
39 |
25 |
26 |
9 |
4.0 |
39 |
9 |
1.0.0 |
1.0 |
4.0.0 |
См. также
- Polyfill
Array.ofвcore-js - es-shims polyfill
Array.of - Руководство по индексированным коллекциям
ArrayArray()Array.from()TypedArray.of()
© 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/Array/of