Hướng dẫn javascript objects in depth - các đối tượng javascript chuyên sâu
Bạn đã tìm hiểu về đối tượng JavaScript trong phần cơ bản của JavaScript. Ở đây, bạn sẽ tìm hiểu về đối tượng một cách chi tiết. Như bạn đã biết, đối tượng trong JavaScript có thể được tạo bằng cách sử dụng hàm theo nghĩa đen, hàm tạo đối tượng hoặc hàm tạo. Đối tượng bao gồm các thuộc tính. Mỗi thuộc tính có thể được gán một giá trị theo nghĩa đen hoặc một hàm. Hãy xem xét các ví dụ sau của các đối tượng được tạo bằng hàm theo nghĩa đen và hàm tạo.
Trong ví dụ trên, đối tượng 3 được tạo bằng cách sử dụng theo nghĩa đen của đối tượng bao gồm các thuộc tính 4 và 5 và đối tượng 6 được tạo bằng hàm xây dựng 7 bao gồm các thuộc tính tên, giới tính và Sayhi nơi hàm được gán cho thuộc tính 8.Bất kỳ chức năng JavaScript nào sử dụng đối tượng được tạo được gọi là chức năng Constructor. Sử dụng phương thức đối tượng.Keys () để truy xuất tất cả các thuộc tính cho đối tượng được chỉ định dưới dạng mảng chuỗi.
Sử dụng vòng lặp for-in để truy xuất tất cả các thuộc tính của một đối tượng như được hiển thị bên dưới.
Mô tả tài sảnTrong JavaScript, mỗi thuộc tính của một đối tượng có mô tả thuộc tính mô tả bản chất của một thuộc tính. Bộ mô tả thuộc tính cho thuộc tính của một đối tượng cụ thể có thể được truy xuất bằng phương pháp 9.Object.getOwnPropertyDescriptor(object, 'property name') Phương thức GetOwnPropertyDescriptor trả về một mô tả thuộc tính cho một thuộc tính được xác định trực tiếp trong đối tượng được chỉ định nhưng không được kế thừa từ Prototytpe của Object. Ví dụ sau đây hiển thị mô tả thuộc tính cho bảng điều khiển.
Như bạn có thể thấy trong đầu ra ở trên, bộ mô tả thuộc tính bao gồm 4 thuộc tính quan trọng sau đây.
Object.defineProperty()Phương thức đối tượng.defineProperty () xác định một thuộc tính mới trên đối tượng được chỉ định hoặc sửa đổi một mô tả thuộc tính hoặc thuộc tính hiện có. Object.defineProperty(object, 'property name', descriptor) Ví dụ sau đây cho thấy sửa đổi mô tả thuộc tính.
Ví dụ trên, nó sửa đổi thuộc tính có thể ghi của thuộc tính 0 của đối tượng 6 bằng cách sử dụng 2. Vì vậy, tài sản 0 không thể thay đổi. Nếu bạn cố gắng thay đổi giá trị của thuộc tính 0 thì nó sẽ ném một ngoại lệ ở chế độ nghiêm ngặt. Trong chế độ không nghiêm ngặt, nó sẽ không ném một ngoại lệ nhưng nó cũng sẽ không thay đổi giá trị của thuộc tính tên.Theo cách tương tự, bạn có thể thay đổi bộ mô tả thuộc tính Enumable như được hiển thị bên dưới.
0Trong ví dụ trên, nó hiển thị tất cả các thuộc tính sử dụng vòng lặp cho trong. Nhưng, một khi bạn thay đổi thuộc tính Enumable thành FALSE thì nó sẽ không hiển thị thuộc tính 0 bằng cách sử dụng vòng lặp for-in. Như bạn có thể thấy trong đầu ra, sau khi cài đặt các thuộc tính của thuộc tính tên thành FALSE, nó sẽ không được liệt kê bằng cách sử dụng phương thức For-in Loop hoặc thậm chí đối tượng.Keys ().Phương thức Object.defineProperty () cũng có thể được sử dụng để sửa đổi thuộc tính có thể định cấu hình của một thuộc tính hạn chế thay đổi bất kỳ thuộc tính mô tả thuộc tính nào hơn nữa. Ví dụ sau đây cho thấy thay đổi thuộc tính có thể định cấu hình. 1Trong ví dụ trên, 6 đặt thuộc tính có thể định cấu hình thành FALSE làm cho đối tượng Student1 không thể cấu hình được sau đó. 7 đặt có thể ghi thành sai, điều này sẽ ném một ngoại lệ ở chế độ nghiêm ngặt vì chúng tôi đã đặt cấu hình thành sai.Xác định tài sản mớiPhương thức đối tượng 2 |