Hướng dẫn flag in javascript - cờ trong javascript
Như chúng ta biết, các đối tượng có thể lưu trữ các thuộc tính. Show Cho đến bây giờ, một thuộc tính là một cặp khóa-giá trị đơn giản. Nhưng một thuộc tính đối tượng thực sự là một thứ linh hoạt và mạnh mẽ hơn. Trong chương này, chúng ta sẽ nghiên cứu các tùy chọn cấu hình bổ sung và trong phần tiếp theo chúng ta sẽ xem làm thế nào để vô hình biến chúng thành các hàm getter / setter.
Các thuộc tính đối tượng, ngoài một 6, có ba thuộc tính đặc biệt (còn gọi là cờ – Flag): 6, có ba thuộc tính đặc biệt (còn gọi là cờ – Flag):
Chúng ta chưa nhìn thấy chúng, vì nhìn chung chúng không xuất hiện. Khi chúng ta tạo một thuộc tính theo cách thông thường, thì tất cả đều 8. Nhưng chúng ta cũng có thể thay đổi chúng bất cứ lúc nào.Trước tiên, hãy xem làm thế nào để có được những flag. Phương thức Object.getOwnPropertyDescriptor cho phép truy vấn thông tin đầy đủ về một thuộc tính. Cú pháp là:
4Các đối tượng cần có được thông tin từ. 5Tên của thuộc tính. Giá trị được trả về là một đối tượng được gọi là đối tượng mô tả thuộc tính: có chứa giá trị và tất cả các cờ. Ví dụ:
Để thay đổi các cờ, chúng ta có thể sử dụng Object.defineProperty. Cú pháp là:
Các đối tượng cần có được thông tin từ. Tên của thuộc tính. 8Giá trị được trả về là một đối tượng được gọi là đối tượng mô tả thuộc tính: có chứa giá trị và tất cả các cờ. Ví dụ: Để thay đổi các cờ, chúng ta có thể sử dụng Object.defineProperty.
4, 5Các đối tượng và thuộc tính của nó để áp dụng mô tả. 2. Non-writableNon-writable3. Non-enumerable
4. Non-configurable 5. Object.defineProperies 6. Object.getOwnPropertyDescriptors 7. Niêm phong một đối tượng trên toàn cầu
3. Non-enumerableNon-enumerable4. Non-configurable 5. Object.defineProperies 6. Object.getOwnPropertyDescriptors7. Niêm phong một đối tượng trên toàn cầu
Các thuộc tính đối tượng, ngoài một 6, có ba thuộc tính đặc biệt (còn gọi là cờ – Flag):
4. Non-configurableNon-configurable5. Object.defineProperies 6. Object.getOwnPropertyDescriptors 7. Niêm phong một đối tượng trên toàn cầu
Các thuộc tính đối tượng, ngoài một 6, có ba thuộc tính đặc biệt (còn gọi là cờ – Flag): 0 7– nếu 8, giá trị có thể được thay đổi, nếu không thì chỉ đọc. 9– nếu 8, sau đó được liệt kê trong các vòng lặp, nếu không thì không được liệt kê.
Cú pháp là: 1Các đối tượng cần có được thông tin từ. Tên của thuộc tính. Giá trị được trả về là một đối tượng được gọi là đối tượng mô tả thuộc tính: có chứa giá trị và tất cả các cờ. 5. Object.defineProperiesObject.defineProperies6. Object.getOwnPropertyDescriptors Cú pháp là: 2Ví dụ: 3Vì vậy, chúng ta có thể thiết lập nhiều thuộc tính cùng một lúc. 6. Object.getOwnPropertyDescriptorsObject.getOwnPropertyDescriptorsĐể có được tất cả các mô tả thuộc tính cùng một lúc, chúng ta có thể sử dụng phương thức Object.getOwnPropertyDescriptors(obj). Cùng với 9nó, nó có thể được sử dụng như một cách nhân bản một cách nhận biết cờ: 4Thông thường khi chúng ta sao chép một đối tượng, chúng ta sử dụng một phép gán để sao chép các thuộc tính, như thế này: 5Nhưng điều đó không sao chép cờ. Vì vậy, nếu chúng ta muốn có một bản sao tốt hơn, thì 9được ưu tiên.Một sự khác biệt khác là 1bỏ qua các thuộc tính tượng trưng, nhưng 2trả về tất cả các mô tả thuộc tính bao gồm các thuộc tính tượng trưng.7. Niêm phong một đối tượng trên toàn cầuNiêm phong một đối tượng trên toàn cầuMô tả thuộc tính làm việc ở cấp độ của các thuộc tính cá nhân. Ngoài ra còn có các phương thức giới hạn quyền truy cập vào toàn bộ đối tượng: Object.preventExtensions(obj) Cấm bổ sung các thuộc tính mới cho đối tượng. Object.seal(obj) Cấm thêm / loại bỏ các thuộc tính. Đặt 8cho tất cả các thuộc tính hiện có. Object.freeze(obj) Cấm thêm / xóa / thay đổi thuộc tính. Đặt 4cho tất cả các thuộc tính hiện có. Và cũng có những bài kiểm tra cho họ: Object.isExtensible(obj) Trả về 0nếu thêm thuộc tính bị cấm, nếu không 8. Object.isSealed(obj) Trả về 8nếu thêm / xóa thuộc tính bị cấm và tất cả các thuộc tính hiện có 8. Object.isFrozen(obj) Trả về 8nếu việc thêm / xóa / thay đổi thuộc tính bị cấm và tất cả các thuộc tính hiện tại là 4. Những phương pháp này hiếm khi được sử dụng trong thực tế. Full series tự học Javascript từ cơ bản tới nâng cao tại đây nha. Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng! Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you! |