摘要:是一個(gè)內(nèi)置的對象,它提供可攔截操作的方法。方法與代理處理程序的方法相同。不是一個(gè)函數(shù)對象,因此它是不可構(gòu)造的。的方法,攔截對象,然后讀取為的值。使用給目標(biāo)函數(shù)傳入指定的參數(shù)。
Reflect 是一個(gè)內(nèi)置的對象,它提供可攔截JavaScript操作的方法。方法與代理處理程序的方法相同。Reflect 不是一個(gè)函數(shù)對象,因此它是不可構(gòu)造的。
new Reflect() //錯(cuò)誤的寫法
Reflect使用
Reflect提供了一些靜態(tài)方法,靜態(tài)方法是指只能通過對象自身訪問的的方法
1、Reflect.apply()
2、Reflect.construct()
3、Reflect.defineProperty()
4、Reflect.deleteProperty()
5、Reflect.enumerate()
6、Reflect.get()
7、Reflect.getOwnPropertyDescriptor()
8、Reflect.getPrototypeOf()
9、Reflect.has()
10、Reflect.isExtensible()
11、Reflect.ownKeys()
12、Reflect.preventExtensions()
13、Reflect.set()
14、Reflect.setPrototypeOf()
靜態(tài)方法的使用:
demo1:使用Reflect.get()獲取目標(biāo)對象指定key的value。
let obj = { a: 1 }; let s1 = Reflect.get(obj, "a") console.log(s1) // 1
demo1的get()方法,攔截obj對象,然后讀取key為a的值。當(dāng)然,不用Reflect也可以讀取a的值。
demo2:使用Reflect.apply給目標(biāo)函數(shù)floor傳入指定的參數(shù)。
const s2 = Reflect.apply(Math.floor, undefined, [1.75]); console.log(s2) // 1 / /Reflect.apply()提供了3個(gè)參數(shù), // 第一個(gè)參數(shù)是反射的函數(shù),后面2個(gè)參數(shù)才是和數(shù)組的apply一致。
demo2的例子我們可以理解成是攔截了Math.floor方法,然后傳入?yún)?shù),將返回值賦值給s2,這樣我們就能在需要讀取這個(gè)返回值的時(shí)候調(diào)用s2。
demo3:使用Reflect.ownKeys獲取對象的keys
console.log(Reflect.ownKeys({"a":0,"b":1,"c":2,"d":3})); //輸出 :["a", "b", "c", "d"] console.log(Reflect.ownKeys([])); // ["length"] var sym = Symbol.for("comet"); var sym2 = Symbol.for("meteor"); var obj = { [sym]: 0, "str": 0, "773": 0, "0": 0, [sym2]: 0, "-1": 0, "8": 0, "second str": 0 }; Reflect.ownKeys(obj); //輸出:/ [ "0", "8", "773", "str", "-1", "second str", Symbol(comet), Symbol(meteor) ]
Reflect.ownKeys的排序是根據(jù): 先顯示數(shù)字, 數(shù)字根據(jù)大小排序,然后是 字符串根據(jù)插入的順序排序
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/99896.html
摘要:在下文中,首先我會介紹的使用方式,然后列舉具體實(shí)例解釋的使用場景。如果簡單地區(qū)分和的使用場景,可以概括為的核心作用是控制外界對被代理者內(nèi)部的訪問,的核心作用是增強(qiáng)被裝飾者的功能。 文章永久鏈接地址:http://pinggod.com/2016/%E5%AE%9E%E4%BE%8B%E8%A7%A3%E6%9E%90-ES6-Proxy-%E4%BD%BF%E7%94%A8%E5%9C...
摘要:原文你真的會克隆對象嗎開始之前在開始聊克隆之前,我們還是先來看看數(shù)據(jù)類型。值通過函數(shù)生成,是獨(dú)一無二的。同時(shí),中規(guī)定了對象的屬性名有兩種類型,一種是字符串,另一種就是類型。返回一個(gè)數(shù)組,包含對象自身的所有屬性的鍵名。 原文:你真的會克隆對象嗎 開始之前 在開始聊克隆之前,我們還是先來看看js數(shù)據(jù)類型。js的數(shù)據(jù)類型分為基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型。 基本數(shù)據(jù)類型:Number、Bool...
閱讀 3027·2021-11-02 14:40
閱讀 844·2019-08-30 15:53
閱讀 1265·2019-08-30 15:53
閱讀 3259·2019-08-30 13:53
閱讀 3305·2019-08-29 12:50
閱讀 1132·2019-08-26 13:49
閱讀 1864·2019-08-26 12:20
閱讀 3660·2019-08-26 11:33