Hướng dẫn instanceof array javascript - instanceof mảng javascript
Các toán từ 3 cho phép để kiểm tra xem một đối tượng thuộc về một lớp nhất định nào vậy. Nó cũng có tính kế thừa. Show Kiểm tra như vậy có thể cần thiết trong nhiều trường hợp. Ở đây chúng ta sẽ sử dụng nó để xây dựng một hàm đa hình , một hàm xử lý các đối số khác nhau tùy thuộc vào kiểu của chúng.
1. Toán tử instanceof2. Phần thêm: Object.prototype.toString cho các kiểu
2.1. Symbol.toStringTag 3. Tóm lược
Cú pháp là:
Nó trả về 4nếu 5thuộc về 6hoặc một lớp kế thừa từ nó.
Ví dụ: Nó cũng hoạt động với các hàm xây dựng: … và với các lớp dựng sẵn như 7:
Thông thường, 3kiểm tra một chuỗi nguyên mẫu. Chúng ta cũng có thể thiết lập một logic tùy chỉnh trong phương thức tĩnh 3.Thuật toán của các công trình 4 đại khái như sau:
Nếu có một phương thức tĩnh 3, thì chỉ cần gọi nó : 6. Nó sẽ trả lại 4hoặc 8, và chúng ta đã hoàn thành. Đó là cách chúng ta có thể tùy chỉnh hành vi của 3. Ví dụ: Hầu hết các lớp không có 3. Trong trường hợp đó, logic chuẩn được sử dụng: 1để kiểm tra xem 2có bằng một trong các nguyên mẫu trong chuỗi nguyên mẫu của 5 hay không.
Nói cách khác, so sánh cái này với cái khác: Trong ví dụ trên 4, do đó đưa ra câu trả lời ngay lập tức.Trong trường hợp thừa kế, sẽ ở bước thứ hai: Dưới đây là minh họa về những gì 5so sánh với 6:Nhân tiện, cũng có một phương thức objA.isPrototypeOf(objB), trả về 4nếu 8có ở đâu đó trong chuỗi các nguyên mẫu của 9. Vì vậy, bài kiểm tra 4có thể được như 1.
2. Phần thêm: Object.prototype.toString cho các kiểuPhần thêm: Object.prototype.toString cho các kiểu2.1. Symbol.toStringTag
3. Tóm lược Cú pháp là: Nó trả về 4nếu 5thuộc về 6hoặc một lớp kế thừa từ nó.
Nếu có một phương thức tĩnh 3, thì chỉ cần gọi nó : 6. Nó sẽ trả lại 4hoặc 8, và chúng ta đã hoàn thành. Đó là cách chúng ta có thể tùy chỉnh hành vi của 3. Ví dụ:
Hầu hết các lớp không có 3. Trong trường hợp đó, logic chuẩn được sử dụng: 1để kiểm tra xem 2có bằng một trong các nguyên mẫu trong chuỗi nguyên mẫu của 5 hay không.Nói cách khác, so sánh cái này với cái khác: 02.1. Symbol.toStringTagSymbol.toStringTag3. Tóm lược 3. Tóm lược 1Cú pháp là: 2Nó trả về 4nếu 5thuộc về 6hoặc một lớp kế thừa từ nó.Ví dụ: Nó cũng hoạt động với các hàm xây dựng: … và với các lớp dựng sẵn như 7:
Dưới đây là minh họa về những gì 5so sánh với 6:Nhân tiện, cũng có một phương thức objA.isPrototypeOf(objB), trả về 4nếu 8có ở đâu đó trong chuỗi các nguyên mẫu của 9. Vì vậy, bài kiểm tra 4có thể được như 1.Thật buồn cười, nhưng bản thân constructor của 6 không tham gia kiểm tra! Chỉ có chuỗi các nguyên mẫu và 2.Điều đó có thể dẫn đến hậu quả thú vị khi một thuộc tính 4 được thay đổi sau khi đối tượng được tạo.
Dành cho 5: 6Đối với mảng: obj.__proto__ === Class.prototype?
obj.__proto__.__proto__ === Class.prototype?
obj.__proto__.__proto__.__proto__ === Class.prototype?
...
// if any answer is true, return true
// otherwise, if we reached the end of the chain, return false |