Các nhà xây dựng Mảng có thể được gọi bằng hai cách: một danh sách các giá trị được sử dụng như giá trị cho các phần tử mảng, hoặc với một giá trị số đơn cho chiều dài ban đầu:
var myArray = new Array("hello", "world"); // 2 elements
var otherArray = new Array(100); // 100 elements, all empty
Bởi vì có một sự nhập nhằng khi chỉ một số được chuyển, API cũ được coi là thiết kế kém. Như vậy, có Array.of()
, mà là giống như các tùy chọn đầu tiên cho các nhà xây dựng Array:
var otherArray = Array.of(100); // 1 element
Cách thứ ba để làm cho một mảng là với một biểu thức mảng khởi tạo:
var otherArray = [100]; // 1 element
Các trường hợp mảng được tạo ra bởi mỗi trong số trên là tương đương về chức năng và hoàn toàn có thể hoán đổi cho nhau.
Một điều nữa: tại sao Array.of()
phải tồn tại, với điều kiện chúng ta có thể sử dụng biểu thức khởi tạo mảng? Vâng, Array.of()
là một hàm, vì vậy nó có thể được sử dụng như một giá trị được áp dụng trong lập trình kiểu hàm. Bạn có thể (như là một ví dụ hơi ngớ ngẩn) sao chép một mảng với:
var copy = Array.of.apply(Array, original);
Một lý do đó là câm là có cũng (trong ES2015) Array.from()
để làm điều tương tự:
var copy = Array.from(original);
đó làm việc trên bất kỳ loại bản gốc có thể lặp lại nào, do đó, đây là cách tốt để biến arguments
hoặc một NodeList thành một mảng.
MDN site có tài liệu về Array.of()
. Hàm khởi tạo và biểu mẫu khởi tạo mảng đã tồn tại từ rất lâu, do đó, bất kỳ tham chiếu JavaScript nào sẽ bao gồm các tham số đó (mặc dù có thể không tham chiếu đến Array.of()
).
tôi đã nhìn thấy nó, có lẽ câu hỏi của tôi là không rõ ràng tôi đang tìm kiếm một phần giải thích thực tế của usecases thay vì một tài liệu đơn giản cắt & dán. @AmmarCSE cảm ơn bạn vì nó anyway –