JS властивість Array.constructor
Опис
Атрибут Array.constructor
є специфічною властивістю у JavaScript, яка надає доступ до конструктора об'єкта. Щоб зрозуміти його сутність, уявімо, що кожен об'єкт, який ви створюєте в JavaScript, насправді "будується" за допомогою специфічного конструктора. Для масивів цим конструктором є Array
. Тепер, коли ми говоримо про Array.constructor
, мається на увазі властивість, яка дозволяє нам "заглянути" назад і побачити, який саме конструктор було використано для створення певного об'єкта. У нашому випадку це конструктор для масивів.
Приклад:
let arr = [1, 2, 3];
console.log(arr.constructor === Array); // true
У цьому прикладі ми створюємо масив arr
і потім перевіряємо, чи було використано конструктор Array
для його створення. Як бачите, відповідь true
.
Проте, навіть знаючи про існування Array.constructor
, в більшості випадків програмісти просто використовують Array
безпосередньо, коли їм потрібно створити новий масив. Наприклад:
let newArray = new Array(5);
Цей код створює новий масив із п'яти пустих елементів.
Таким чином, хоча Array.constructor
може бути корисним у специфічних випадках, для більшості завдань рекомендується просто використовувати `Array
безпосередньо. Тим паче, це звичніший і більш інтуїтивний спосіб роботи з масивами у JavaScript для більшості розробників.
Нотатка: | Не забувайте, що |
Синтаксис
new Array()
new Array(element0)
new Array(element0, element1)
new Array(element0, element1, /* … ,*/ elementN)
new Array(arrayLength)
Array()
Array(element0)
Array(element0, element1)
Array(element0, element1, /* … ,*/ elementN)
Array(arrayLength)
Значення
elementN
Масив JavaScript формується із заданими елементами. Проте існує виняток: коли до конструктора
Array
подається лише один аргумент, що є числом.arrayLength
Коли єдиний аргумент, який подається конструктору
Array
, є цілим числом і знаходиться в діапазоні від 0 до2^32 - 1
(включаючи крайні значення), то результатом стає новий масив JavaScript із властивістюlength
, що дорівнює цьому числу.
Return
Exception
Помилка в межах значень, так звана RangeError
, виникає в ситуаціях, коли у нас є лише один аргумент (arrayLength
), який має числове значення. Проте це число не є цілим числом або виходить за рамки допустимого діапазону - від 0 до 2^32 - 1 включно.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
4 |
12 |
Переглядач | ||||
---|---|---|---|---|
37 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
Цей приклад демонструє, як використовувати властивість constructor
для визначення конструктора масива. Ми створюємо кілька масивів і виводимо їх конструктори.
Порівняння конструктора масиву.
Array.prototype.constructor === Array; // true
new Array().constructor === Array; // true
Array.prototype.constructor === Object; // false
Масиви можна створювати за допомогою літеральної нотації.
const fruits = ["Яблуко", "Банан"];
console.log(fruits.length); // 2
console.log(fruits[0]); // "Яблуко"
Масиви можна створювати за допомогою конструктора з одним числовим параметром. Масив створюється зі своєю властивістю length
, встановленою на це число, і елементи масиву - це порожні слоти.
const arrayEmpty = new Array(2);
console.log(arrayEmpty.length); // 2
console.log(arrayEmpty[0]); // undefined; насправді, це порожній слот
console.log(0 in arrayEmpty); // false
console.log(1 in arrayEmpty); // false
const arrayOfOne = new Array("2"); // Не число 2, а рядок "2"
console.log(arrayOfOne.length); // 1
console.log(arrayOfOne[0]); // "2"
Масив можна створити за допомогою конструктора з декількома параметрами.
const fruits = new Array("Apple", "Banana");
console.log(fruits.length); // 2
console.log(fruits[0]); // "Apple"