ES6 - API phản ánh
ES6 giới thiệu các tính năng mới xung quanh lập trình meta bao gồm việc kiểm tra hoặc sửa đổi cấu trúc của chương trình hoặc thay đổi cách mọi thứ hoạt động trong chính ngôn ngữ đó.
Sau đây là ba hình thức lập trình meta:
Introspection- Introspection nghĩa là chương trình thu thập thông tin về chính nó. Một số ví dụ về các toán tử JavaScript được sử dụng để xem xét nội tâm làtypeof, instanceof Vân vân.
Self-modification- Tự sửa đổi đề cập đến việc sửa đổi cấu trúc của một chương trình trong thời gian chạy. Nó liên quan đến việc truy cập hoặc tạo các thuộc tính mới trong thời gian chạy. Nói cách khác, tự sửa đổi là khi một số mã tự sửa đổi.
Intercession- đề cập đến mã sửa đổi hành vi mặc định của một ngôn ngữ lập trình. Sự can thiệp liên quan đến việc sửa đổi ngữ nghĩa của ngôn ngữ lập trình hoặc thêm các cấu trúc mới vào chương trình trong thời gian chạy.
ES6 giới thiệu Giao diện Lập trình Ứng dụng Phản chiếu (Reflect API) và API Proxy hỗ trợ lập trình meta.
Lập trình meta với API Reflect
Reflect API trong ES6 cho phép chúng tôi kiểm tra hoặc sửa đổi các lớp, đối tượng, thuộc tính và phương thức của một chương trình trong thời gian chạy. CácReflectAPI cung cấp đối tượng Reflect toàn cục có các phương thức tĩnh có thể được sử dụng để xem xét nội tâm. Các phương pháp này được sử dụng để khám phá thông tin cấp thấp về mã. API Reflect có thể được sử dụng để xây dựng các khuôn khổ thử nghiệm tự động hóa để kiểm tra và xem xét nội dung chương trình trong thời gian chạy.
Dưới đây là một số phương thức thường được sử dụng của đối tượng Reflect:
Sr.No | Phương pháp & Mô tả |
---|---|
1 |
Reflect.apply ()
Gọi một hàm đích với các đối số như được chỉ định bởi tham số args |
2 |
Reflect.construct ()
Tương đương với việc gọi các đối tượng đích (... args) mới của một lớp |
3 |
Reflect.get ()
Một hàm trả về giá trị của thuộc tính. |
4 |
Reflect.set ()
Một hàm gán giá trị cho các thuộc tính. Trả về Boolean đúng nếu cập nhật thành công. |
5 |
Reflect.has ()
Toán tử in dưới dạng hàm. Trả về Boolean cho biết có tồn tại thuộc tính riêng hay thuộc tính kế thừa hay không. |