Mảng javascript có thể được mở rộng không?

Một điều thú vị khác về ES6 là bạn có thể mở rộng các cài đặt sẵn. Ý tôi không phải là làm trò khỉ với nguyên mẫu của thứ gì đó như mảng hoặc số, nhưng ý tôi là chúng ta có thể tạo các lớp của riêng mình được mô hình hóa sau một mảng. Giả sử chúng ta muốn tạo một bộ sưu tập phim trông giống như thế này

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];

Bây giờ bộ sưu tập phim sẽ lấy

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
0, đó là tên bộ sưu tập của chúng ta, và sau đó đối số hai, ba, bốn, v.v., sẽ có một bộ phim, trong đó bạn có
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
1 của bộ phim và số . Đây giống như một mảng, ngoại trừ nó sẽ có thuộc tính là
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
0, và sau đó chúng ta cũng sẽ thêm các phương thức vào mảng này

Những gì chúng tôi làm là chúng tôi tạo một lớp

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
4 mở rộng mảng dựng sẵn

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];

Chúng ta cần một hàm tạo ở đây, nhưng những đối số nào sẽ được truyền vào khi chúng ta tạo một bộ sưu tập phim mới? . Nhưng sau đó, làm cách nào để nắm bắt các mục hai, ba, bốn, v.v. cho phần còn lại của các đối số mà bạn cần?

tôi chỉ nói nó. Chúng ta có thể sử dụng phần còn lại, trong trường hợp này là

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
6

class MovieCollection extends Array {
 constructor[name, ...items] {
     
 }
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];

Điều đó sẽ làm là điều đầu tiên đối số đầu tiên là một

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
1 và phần còn lại của chúng được thông qua sẽ là
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
8. Vì vậy, hãy thử một cái gì đó

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
2

Nếu chúng tôi cố chạy cái này, chúng tôi sẽ gặp một lỗi khá quen thuộc, cho chúng tôi biết rằng ________ 19. Tại sao chúng ta không thể đặt

class MovieCollection extends Array {
 constructor[name, ...items] {
     
 }
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
0 trên bộ sưu tập phim?

Hãy nhớ rằng, bất cứ khi nào bạn mở rộng thứ gì đó, bạn cần tạo thứ mà bạn đang mở rộng trước, trước khi tạo thứ bạn muốn

làm sao chúng ta làm việc đó bây giờ?

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
5

Những gì chúng tôi đã làm được gọi là

class MovieCollection extends Array {
 constructor[name, ...items] {
     
 }
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
1 và đã thông qua nó
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
8. Chúng tôi đã làm điều đó bởi vì nó giống như tạo một mảng mới sẽ lấy mục một, hai, ba, v.v., giống như
class MovieCollection extends Array {
 constructor[name, ...items] {
     
 }
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
3. Bởi vì chúng tôi không biết chúng tôi sẽ có bao nhiêu mặt hàng, chúng tôi có thể vượt qua nó
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
8 để nắm bắt mọi thứ

Nếu chúng tôi chạy mã này, chúng tôi sẽ thấy

class MovieCollection extends Array {
 constructor[name, ...items] {
     
 }
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
5 của chúng tôi trong bảng điều khiển, nhưng
class MovieCollection extends Array {
 constructor[name, ...items] {
     
 }
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
5 của chúng tôi sẽ là một mảng của một mảng

Đó không phải là chính xác những gì chúng ta muốn. Chúng tôi muốn có thể đặt từng mục vào một mảng, không phải một mảng trong một mảng, vì vậy chúng tôi sử dụng trải rộng, trong trường hợp này là

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
6 vào hàm

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
3

Chúng tôi làm điều này vì

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
8 là một mảng, nhưng chúng tôi muốn chuyển
class MovieCollection extends Array {
 constructor[name, ...items] {
     
 }
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
9 mỗi mục làm đối số. Điều này thật tuyệt vì chúng ta đã chụp tất cả chúng bằng một phần còn lại, sau đó chúng ta quay lại và trải chúng vào hàm
class MovieCollection extends Array {
 constructor[name, ...items] {
     
 }
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
9 của chúng ta, đó là mảng

Nếu gọi

class MovieCollection extends Array {
 constructor[name, ...items] {
     
 }
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
5 trong bảng điều khiển của chúng tôi, nó sẽ trả về các đối tượng này, nếu chúng tôi mở chúng ra, bạn sẽ thấy tất cả các bộ phim khác nhau có trong mảng của chúng tôi

Nếu chúng tôi yêu cầu

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
22 trong bảng điều khiển, chúng tôi sẽ thấy nó có tên là "Phim yêu thích của Wes"

Chúng ta có thể có một mảng nhưng chúng ta cũng có thể có các thuộc tính. Đó là bởi vì, vào cuối ngày, mảng vẫn là đối tượng trong JavaScript

Bây giờ những gì chúng ta có thể làm là thêm các phương thức vào bộ sưu tập phim này. Hãy thêm phim bằng cách sử dụng

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
23

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
0

Mặc dù chúng ta có lớp

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
4, nhưng vì chúng ta đã mở rộng Array nên nó kế thừa tất cả các phương thức của mảng

Vì vậy, chúng tôi có thể thêm một bộ phim mới bằng cách thêm

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
25 thêm Titanic là một bộ phim năm sao. Nếu chúng tôi chạy mã này trong bảng điều khiển của mình, chúng tôi sẽ thấy Titanic ở đó, bộ phim cuối cùng của chúng tôi là Titanic

Điều tiếp theo tôi muốn chỉ cho bạn là sử dụng vòng lặp

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
26

Trong bảng điều khiển, chúng ta có thể chạy

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
4

Những gì chúng ta sẽ thấy là chúng ta nhận được ________ 127, ________ 128, ________ 129, ________ 150 và

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
51. Điều đó hợp lý vì nó là chỉ mục của từng đối tượng trong lớp của chúng ta, nhưng sau đó chúng ta nhận được
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
1

Tại sao chúng ta có được tên?

Tuy nhiên, chúng ta cũng đã học về

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
56, nó chỉ lặp lại các thuộc tính có thể lặp lại của một đối tượng. chúng ta có thể sử dụng

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
5

Nếu chúng tôi chạy nó, bạn sẽ thấy rằng chúng tôi không nhận được

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
1 và chúng tôi cũng nhận được
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
58 thực tế cho mỗi bộ phim, không chỉ là chỉ mục như chúng tôi đã làm trước đây. Đó là một điều thực sự thú vị khi bạn vẫn có thể thêm các thuộc tính vào một mảng, nhưng chúng ta có thể bỏ qua các thuộc tính đó bằng vòng lặp
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
56

Hãy thêm một phương pháp nữa vào đây, nơi tôi muốn có thể sắp xếp mảng phim này và sau đó lấy 2, 3 hoặc 10 phim hàng đầu hoặc bao nhiêu chúng tôi muốn

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
9

Vì vậy, chúng tôi đã gọi phương thức của mình là

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
30, phương thức này đang lấy
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
31 làm đối số của nó. Nếu bạn có hàng nghìn phim chuyển động, bạn chỉ muốn lấy lại một số ít, nhưng ở đây chúng tôi đã đặt đối số chức năng mặc định của mình thành 10, điều này sẽ mang lại 10 phim hàng đầu của chúng tôi

Ở dòng tiếp theo, chúng ta có thể thực hiện sắp xếp nhanh và bẩn, và

class MovieCollection extends Array {
 constructor[name, ...items] {
     
 }
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
0 trong trường hợp này là ________ 14, là một mảng, mà chúng ta có thể sử dụng ________ 234, đây là một phương thức có sẵn cho mảng. Cùng với đó, chúng ta có thể sắp xếp từng đối tượng trong mảng của mình và xem nếu
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
35 lớn hơn
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
36 thì chúng ta sẽ có -1 và 1. Sau đó, chúng ta có thể gọi
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
37 trên đó và cắt từ chỉ số 0 đến giới hạn, theo mặc định là 10

Bây giờ chúng tôi có thể gọi

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
38 và nó sẽ mang các bộ phim của chúng tôi trở lại, nhưng chúng sẽ chỉ hiển thị dưới dạng
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
39

Điều đó không tốt lắm, nhưng thay vào đó, hãy thử sử dụng

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
00

Nếu bạn chạy nó trong bảng điều khiển của mình, nó sẽ cung cấp cho chúng tôi tất cả các bộ phim, được sắp xếp theo số lượng sao, trong một bảng đẹp. Bạn cũng có thể vượt qua

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
01, hai bộ phim được xếp hạng cao nhất và điều đó sẽ mang lại cho tôi một bảng gồm hai bộ phim được xếp hạng cao nhất

Điều đó thực sự tiện dụng nếu bạn có thể có một mảng, nhưng cũng có các phương thức ở phía trước nó. Mở rộng mảng, bạn có thể mở rộng bất kỳ nội dung gốc nào được tích hợp vào JavaScript để tạo bộ sưu tập của riêng bạn

Cuối cùng, chúng ta cần thêm một lời cảnh báo khi mở rộng mảng với các lớp cho một bộ sưu tập tùy chỉnh. Chúng tôi đang sửa đổi chữ ký hàm tạo của mảng mở rộng, vì vậy chúng tôi không thể trả lời khi quay lại các phương thức mảng 'gốc' như

class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
02,
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
03 trên thể hiện lớp của mảng mà chúng tôi đang sử dụng. Tương tự, chúng ta không thể dựa vào hành vi của bất kỳ phương thức nào khác trả về một thể hiện mới của một mảng nếu trước tiên chúng ta chưa xác định hành vi của nó trong ngữ cảnh của lớp mở rộng. Lý do cho hành vi 'bất ngờ' là Javascript gọi hàm tạo mỗi khi nó chạy
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
02 và hàm tạo đó được gọi với độ dài của mảng ban đầu. Vì chúng tôi đã sửa đổi chữ ký của hàm tạo, bản sao mới của mảng sẽ không giống như bạn mong đợi. Để sử dụng các phương thức 'gốc' này, bạn sẽ phải định nghĩa rõ ràng chúng trong lớp mở rộng, như chúng ta đã làm với phương thức
class MovieCollection extends Array {
 
}

const movies = new MovieCollection['Wes\'s Fav Movies',
    {name: 'Bee Movie', stars: 10},
    {name: 'Star Wars Trek', stars: 1},
    {name: 'Virgin Suicides', stars: 7},
    {name: 'King of the Road', stars: 8}
];
05

Bạn có thể mở rộng mảng không?

Mở rộng mảng sau khi khởi tạo. Vì chúng ta không thể sửa đổi kích thước mảng sau khi khai báo mảng nên chúng ta chỉ có thể mở rộng nó bằng cách khởi tạo một mảng mới và sao chép các giá trị của mảng cũ sang mảng mới, sau đó . .

Làm cách nào để mở rộng các phương thức mảng trong JavaScript?

Cách mở rộng một mảng JavaScript hiện có bằng một mảng khác mà không cần tạo một mảng mới .
Phương pháp đẩy JavaScript. để mảng1 = [0, 1, 2];.
Phương pháp đẩy JavaScript. để mảng1 = [0, 1, 2];.
Hàm JavaScript khi bạn có tên của nó dưới dạng chuỗi. để mảng1 = [0, 1, 2];.
Phương thức nối JavaScript. cho num1 = [1, 3, 8];

Mảng có mở rộng đối tượng JavaScript không?

Ví dụ: Mảng mở rộng đối tượng . Thông thường, khi một lớp mở rộng một lớp khác, cả phương thức tĩnh và không tĩnh đều được kế thừa. Điều đó đã được giải thích cặn kẽ trong bài viết Thuộc tính và phương thức tĩnh.

Các mảng JavaScript có kích thước động không?

Mảng JavaScript có bản chất là Động điều đó có nghĩa là độ dài của mảng có thể được sửa đổi trong thời gian chạy [khi cần thiết].

Chủ Đề