久久一区二区三区超碰国产精品,亚洲人成在线网站,国产在线精品一区免费香蕉,国产精品免费电影

歡迎您訪問ES6新API之Reflect對象:設計目的與方法特性解析!

ES6新API之Reflect對象:設計目的與方法特性解析

更新時間:2025-09-03 21:11:14作者:佚名

[]

該實體與代理類似,也是 ES6 為處理對象而新增的一種機制。它的構建意圖包含多個方面。

Reflect對象用法_reflect是什么意思_Reflect與Proxy關系

將對象的部分顯著屬于語言體系的方法(諸如點號操作),遷移至對象本身,當前某些方法既在對象上存在,也部署在語言核心,往后新增的方法將僅部署在對象層面,換言之,對象本身能夠獲取語言體系內的方法。

調整部分函數的輸出,使其更為恰當。舉例來說reflect是什么意思留學之路,當嘗試設定某個屬性卻無法成功時,一個函數會觸發異常,而另一個函數則會產生一個假值。

Reflect對象用法_Reflect與Proxy關系_reflect是什么意思

  1. // 老寫法
  2. try {
  3. Object.defineProperty(target, property, attributes);
  4. // success
  5. } catch (e) {
  6. // failure
  7. }
  8. // 新寫法
  9. if (Reflect.defineProperty(target, property, attributes)) {
  10. // success
  11. } else {
  12. // failure
  13. }

讓所有操作都以函數形式執行。部分操作具有指令式特征,例如name屬于obj以及obj,而.has(obj, name)和.(obj, name)則將它們轉化為函數調用方式。

  1. // 老寫法
  2. 'assign' in Object // true
  3. // 新寫法
  4. Reflect.has(Object, 'assign') // true

Reflect對象用法_reflect是什么意思_Reflect與Proxy關系

對象上的方法與Proxy對象的方法逐項匹配,只要Proxy對象擁有某個方法,那么在對象中也必然存在相應的方法。這種對應關系使得Proxy對象能夠便捷地調用對象中的方法,以實現預設的默認操作,并為后續的行為調整提供依據。換句話說,即便Proxy對象對默認行為進行了調整,依然可以從對象中檢索到原始的默認行為。

  1. Proxy(target, {
  2. set: function(target, name, value, receiver) {
  3. var success = Reflect.set(target, name, value, receiver);
  4. if (success) {
  5. console.log('property ' + name + ' on ' + target + ' set to ' + value);
  6. }
  7. return success;
  8. }
  9. });

那個代碼里的Proxy方法會阻攔對象屬性值的更改動作。它借助.set技術把數值安放到對象屬性之中,務必要讓原本的動作得以實現,隨后再附加其他作用。

下面是另一個例子。

Reflect與Proxy關系_reflect是什么意思_Reflect對象用法

  1. var loggedObj = new Proxy(obj, {
  2. get(target, name) {
  3. console.log('get', target, name);
  4. return Reflect.get(target, name);
  5. },
  6. deleteProperty(target, name) {
  7. console.log('delete' + name);
  8. return Reflect.deleteProperty(target, name);
  9. },
  10. has(target, name) {
  11. console.log('has' + name);
  12. return Reflect.has(target, name);
  13. }
  14. });

上述代碼里,所有Proxy對象的攔截動作,比如獲取、檢查屬性等reflect是什么意思,都通過對應的方法實現,確保原始功能不受影響?,F在需要做的,是為每個操作打印一條記錄信息。

Reflect對象用法_reflect是什么意思_Reflect與Proxy關系

有了對象以后,很多操作會更易讀。

  1. // 老寫法
  2. Function.prototype.apply.call(Math.floor, undefined, [1.75]) // 1
  3. // 新寫法
  4. Reflect.apply(Math.floor, undefined, [1.75]) // 1

為您推薦

arise、rise與raise的區別:不及物與及物動詞用法解析

arise是不及物動詞,它的意思為“發生,出現”,它的過去式和過去分詞分別為arose和arisen。rise也是個不及物動詞,它的意思為“升起;上升;起床”,它的過去式和過去分詞分別為rose和risen。raise是及物動詞,后面要跟事物,其本身的根本含義是“使上升,讓上升”。

2025-09-03 21:10

安利原是Amway譯名,如今在網絡有了新含義:真心推薦

安利,意思類似推薦。安利,就是指“把自己認為好的東西告訴別人,因為自己喜歡所以真心推薦”。原義為“安利公司”,現詞義引申為:“自己喜歡所以真心推薦”。原義為“想要購買安利產品”,現詞義引申為:“求真誠推薦”。詞義引申為:“請一定要接受我的真心推薦”、“我接受了這個推薦”。

2025-09-03 21:06

reason的用法詳解及多個精彩樣例解析,你知道幾個?

reason的用法和樣例:例句我們有理由相信他是被謀殺的。常用短語工人們通過推理懂得真正的權力是在他們自己手中。因為天有霧,我們當時不能推斷出我們所在的位置。你應該同孩子講清道理,不要只叫他聽話。與他講道理沒有用。我跟她爭辯了幾個小時,想讓她認識到危險性,但她就是不聽。

2025-09-03 21:06

Rapper是什么意思?一文詳解其在嘻哈文化中的含義

【rapper的中文意思是什么】“Rapper”是一個英文詞匯,常用于音樂領域,尤其是在嘻哈文化中。“Rapper”是英文“rapping”的名詞形式,原意為“說唱”,指的是以節奏感強的語言進行演唱的一種音樂形式。

2025-09-03 21:05

你以為平平無奇的quote,背后竟藏著這么多故事?

quote這個詞,看上去平平無奇,每個人第一反應都是“引用”對吧?這變化,是不是有點傳奇味?生活中,quote并不是“高冷學者”專屬。好的quote,是能夠激起思考的,有時候還會成為流行語的“種子”。我非常建議,每次看到喜歡的quote都留意下來,無論是英文還是中文。

2025-09-03 21:05

英語學習從記單詞起步,今天來學railway啥意思?

英語的學習是從記單詞開始的,過低的詞匯量極大限制著學生英語聽、說、讀、各方面水平的快速提升。今天我們要學習的單詞是railway。上面為同學們解釋了railway是什么意思,并且整理了railway的相關知識點,希望對同學們有幫助。

2025-09-03 20:26

加載中...
主站蜘蛛池模板: 白玉县| 大荔县| 宜都市| 县级市| 太仆寺旗| 布尔津县| 嘉义市| 宣威市| 山西省| 宾阳县| 鹿泉市| 溆浦县| 时尚| 清苑县| 阜新市| 青阳县| 特克斯县| 会泽县| 百色市| 筠连县| 马龙县| 内黄县| 大庆市| 运城市| 江山市| 五原县| 南丰县| 中阳县| 长乐市| 益阳市| 邯郸市| 如皋市| 阿坝县| 遵义县| 兴海县| 勐海县| 镇雄县| 甘德县| 修文县| 河西区| 丰城市|