- ES6 教程
- ES6 - 首頁
- ES6 - 概述
- ES6 - 環境
- ES6 - 語法
- ES6 - 變數
- ES6 - 運算子
- ES6 - 決策
- ES6 - 迴圈
- ES6 - 函式
- ES6 - 事件
- ES6 - Cookie
- ES6 - 頁面重定向
- ES6 - 對話方塊
- ES6 - Void 關鍵字
- ES6 - 頁面列印
- ES6 - 物件
- ES6 - 數字
- ES6 - 布林值
- ES6 - 字串
- ES6 - Symbol
- ES6 - 新的字串方法
- ES6 - 陣列
- ES6 - 日期
- ES6 - 數學
- ES6 - 正則表示式
- ES6 - HTML DOM
- ES6 - 迭代器
- ES6 - 集合
- ES6 - 類
- ES6 - Map 和 Set
- ES6 - Promise
- ES6 - 模組
- ES6 - 錯誤處理
- ES6 - 物件擴充套件
- ES6 - Reflect API
- ES6 - Proxy API
- ES6 - 驗證
- ES6 - 動畫
- ES6 - 多媒體
- ES6 - 除錯
- ES6 - 影像地圖
- ES6 - 瀏覽器
- ES7 - 新特性
- ES8 - 新特性
- ES9 - 新特性
- ES6 有用資源
- ES6 - 快速指南
- ES6 - 有用資源
- ES6 - 討論
ES6 - Reflect API
ES6 引入了圍繞超程式設計的新特性,超程式設計涉及檢查或修改程式的結構,或更改語言本身的工作方式。
以下是三種超程式設計形式:
內省 - 內省是指程式收集自身資訊。一些用於內省的 JavaScript 運算子示例是typeof、instanceof等。
自我修改 - 自我修改是指在執行時修改程式的結構。它涉及在執行時訪問或建立新屬性。換句話說,自我修改是指某些程式碼修改自身。
干預 - 指程式碼修改程式語言的預設行為。干預涉及修改程式語言的語義或在執行時向程式新增新的構造。
ES6 引入了 Reflect 應用程式程式設計介面 (Reflect API) 和 Proxy API 來支援超程式設計。
使用 Reflect API 進行超程式設計
ES6 中的 Reflect API 允許我們在執行時檢查或修改程式的類、物件、屬性和方法。Reflect API 提供全域性 Reflect 物件,該物件具有可用於內省的靜態方法。這些方法用於發現有關程式碼的底層資訊。Reflect API 可用於構建在執行時檢查和內省程式的自動化測試框架。
下面列出了一些常用的 Reflect 物件方法:
| 序號 | 方法和描述 |
|---|---|
| 1 |
Reflect.apply()
使用 args 引數中指定的引數呼叫目標函式 |
| 2 |
Reflect.construct()
等效於呼叫 new target(...args) 類物件 |
| 3 |
Reflect.get()
返回屬性值的函式。 |
| 4 |
Reflect.set()
為屬性賦值的函式。返回一個布林值,如果更新成功則為 true。 |
| 5 |
Reflect.has()
in 運算子作為函式。返回一個布林值,指示是否存在自己的屬性或繼承的屬性。 |
廣告