Baseline Widely available
The Array.of()
static method creates a new Array
instance from a variable number of arguments, regardless of number or type of the arguments.
console.log(Array.of("foo", 2, "bar", true));
// Expected output: Array ["foo", 2, "bar", true]
console.log(Array.of());
// Expected output: Array []
Syntax
Array.of()
Array.of(element1)
Array.of(element1, element2)
Array.of(element1, element2, /* â¦, */ elementN)
Parameters
element1
, â¦, elementN
Elements used to create the array.
A new Array
instance.
The difference between Array.of()
and the Array()
constructor is in the handling of single arguments: Array.of(7)
creates an array with a single element, 7
, whereas Array(7)
creates an empty array with a length
property of 7
. (That implies an array of 7 empty slots, not slots with actual undefined
values.)
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]
The Array.of()
method is a generic factory method. For example, if a subclass of Array
inherits the of()
method, the inherited of()
method will return new instances of the subclass instead of Array
instances. In fact, the this
value can be any constructor function that accepts a single argument representing the length of the new array, and the constructor will be called with the number of arguments passed to of()
. The final length
will be set again when all elements are assigned. If the this
value is not a constructor function, the plain Array
constructor is used instead.
Array.of(1); // [1]
Array.of(1, 2, 3); // [1, 2, 3]
Array.of(undefined); // [undefined]
Calling of() on non-array constructors
The of()
method can be called on any constructor function that accepts a single argument representing the length of the new array.
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 }
When the this
value is not a constructor, a plain Array
object is returned.
console.log(Array.of.call({}, 1)); // [ 1 ]
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4