国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

ES6 proxy和reflect的使用方法與應用實例分析

2024-05-06 15:44:31
字體:
來源:轉載
供稿:網友

本文實例講述了ES6 proxy和reflect的使用方法。分享給大家供大家參考,具體如下:

proxy和reflect都是es6為了更好的操作對象而提供的新的API,接下來探討一下二者的作用,聯系。

設計proxy,reflect的作用:

proxy的作用:

Proxy的設計目的在于(修改編程語言),修改某些操作方法的默認行為,

等同于在語言層面作出修改,是元編程(meta programming)  例如修改set,get方法

reflect的作用:

1,映射一些明顯屬于對象語言內部的方法,目前是共存于Object和Reflect上,未來只在Reflect上

2,修改一些Object上的方法返回的結果,減少異常拋出,使其變得更加合理

3,讓Object操作都變成函數行為(主要的作用)

4,Reflect對象的方法與Proxy對象的方法一一對應(主要的作用)

proxy和reflect的方法:

proxy的實例方法:

get() set() apply() has() cunstruct() deleteProperty() defineProperty()
getOwnPropertyDescriptor() getPrototypeOf() isExtensible() ownKeys(), preventExtensions() setPrototypeOf()  
var person = { name: "張三"}; var proxy = new Proxy(person, { get: function(target, property) {  if (property in target) {   return target[property];  } else {   throw new ReferenceError("Property /"" + property + "/" does not exist.");  } }});

注:目標對象內部的this關鍵字會指向 Proxy 代理

自身方法:Proxy.revocable方法返回一個可取消的 Proxy 實例

reflect的靜態方法:

和proxy相對應,reflect有13個靜態方法,分別一一對應于proxy的實例方法

Reflect.apply(target, thisArg, args) Reflect.construct(target, args)
Reflect.get(target, name, receiver) Reflect.set(target, name, value, receiver)
Reflect.defineProperty(target, name, desc) Reflect.deleteProperty(target, name)
Reflect.has(target, name) Reflect.ownKeys(target)
Reflect.isExtensible(target) Reflect.preventExtensions(target)
Reflect.getOwnPropertyDescriptor(target, name) Reflect.getPrototypeOf(target)
Reflect.setPrototypeOf(target, prototype)  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 进贤县| 甘德县| 大兴区| 新昌县| 四平市| 革吉县| 绥阳县| 花莲市| 信丰县| 广水市| 璧山县| 广丰县| 奉新县| 东平县| 玉溪市| 广东省| 江阴市| 叶城县| 汝阳县| 南通市| 吉木乃县| 磐石市| 独山县| 台北县| 安泽县| 宝兴县| 甘谷县| 陇西县| 秦安县| 原阳县| 古交市| 搜索| 尉犁县| 柳州市| 临沂市| 丰都县| 涪陵区| 中西区| 西吉县| 资兴市| 保康县|