es6(基礎十五) Proxy(代理)
一、理解
源物件
代理(攔截)
操作
//打個比方
批發衣服:相當於供應商
代理商(張先生)
使用者(買)
二、使用(攔截)
get():攔截物件屬性的讀取
set():攔截物件屬性的設定
deleteProperty():攔截刪除物件key操作
//源物件 let obj = { names:"衣服", times:"2017年1月1日", str:"這衣服還行", _r: 123 } //建立代理 let personZ = new Proxy(obj,{ // 攔截物件屬性的讀取 get(target,key){ //對值進行替換 return target[key].replace("2017", "2018"); //或者設定是否可讀取 /*if(key=="times"){ return false; }else{ return target[key]; }*/ }, // 攔截物件設定屬性 set(target,key,val){ //設定為只允許修改 str if(key=='str'){ return target[key] = val; }else{ return target[key] } }, // 攔截 key in object 操作 has(target, key) { //只能獲取到names if (key === 'names') { return target[key] } else { return false; } }, // 刪除屬性操作 deleteProperty(target,key){ // 存在下劃線 也就是 _r 允許刪除 if(key.indexOf('_') > -1){ delete target[key]; return true; }else{ return target[key]; } }, /** * 攔截 * Object.keys * Object.getOwnPropertySymbols() * Object.getOwnPropertyNamess() * */ ownKeys(target){ return Object.keys(target).filter( item => item !== 'times' ) } }) // 1. get 攔截測試 console.log('get', personZ.times);//get 2018年1月1日 // 2. set 攔截測試 personZ.times = "2019";//時間無法修改 personZ.str = '修改成功'; console.log('set', personZ); //set Proxy {names: "衣服", times: "2017年1月1日", str: "修改成功", _r: 123} // 3. has 攔截測試 console.log('has', 'names' in personZ,'times' in personZ);//has true false // 4. 刪除操作 delete personZ.times; console.log('delete',personZ); //delete Proxy {names: "衣服", times: "2017年1月1日", str: "修改成功", _r: 123} delete personZ._r; console.log('delete',personZ); //delete Proxy {names: "衣服", times: "2017年1月1日", str: "修改成功"} // 5. ownKeys console.log('own',Object.keys(personZ)) //own (2) ["names", "str"]
相關推薦
es6(基礎十五) Proxy(代理)
一、理解 源物件 代理(攔截) 操作 //打個比方 批發衣服:相當於供應商 代理商(張先生) 使用者(買)二、使用(攔截) get():攔截物件屬性的讀取 set():攔截物件屬性的設定 deleteProperty():攔截刪除物件
salesforce零基礎學習(八十五)streaming api 簡單使用(接近實時獲取你需要跟蹤的數據的更新消息狀態)
source fault default 時間戳 存儲 推送 not lac alt Streaming API參考鏈接: https://trailhead.salesforce.com/en/modules/api_basics/units/api_basics_str
java基礎學習總結(二十五):logback詳解
為什麼使用logback logback大約有以下的一些優點: 核心重寫、測試充分、初始化記憶體載入更小,這一切讓logback效能和log4j相比有諸多倍的提升 logback非常自然地直接實現了slf4j,這個嚴格來說算不上優點,只是這樣,再理解slf4j的前提下會很容易理解
Python3基礎之(三十 五)正則表示式
一、正則表示式 正則表示式(Regular Expression)又稱 RegEx, 是用來匹配字元的一種工具. 在一大串字元中尋找你需要的內容. 它常被用在很多方面, 比如網頁爬蟲, 文稿整理,資料篩選等等. 最簡單的一個例子, 比如我需要爬取網頁中每一頁的標題. 而網頁中的標題常
Python3基礎之(二十 五)import 模組
各種import 的方法介紹 import time 指import time 模組,這個模組可以python自帶,也可以是自己安裝的,比如以後會用到numpy這些模組,需要自己安裝。 方法一:直接import 模組 >>> import time >
Java基礎系列(四十五):集合之Map
簡介 Map是一個介面,代表的是將鍵對映到值的物件。一個對映不能包含重複的鍵,每個鍵最多隻能對映到一個值。 Map 介面提供了三種collection檢視,允許以鍵集、值集或鍵-值對映關係集的形式檢視某個對映的內容。對映順序 定義為迭代器在對映的 collection 檢視上返回
Java基礎系列(三十五):泛型進階
型別變數的限定 有時,類或方法需要對型別變數加以約束,就像下面這樣: class ArrayAlg { public static <T extends Comparable> Pair<T> minmax(T[] a) { if (a
微信小遊戲-CocosCreator 基礎(二十五)
1提前繫結資源,會提前載入(打包成圖集拖進去) cc.Director與 資源載入策略: cc.Director物件: 1:遊戲裡面控制管理整個遊戲全域性物件,包括了場景切換等,為cc.Director物件; 2:導演物件全域性只有一個cc.director,大寫的為類,
PPT基礎(四十五)調整圖片透明度
以矩形圖片為例: 方法: 在PPT中插入矩形,將該矩形調整至圖片大小 點選該矩形,滑鼠右鍵->置於底層(K) 拖動圖片,點選該圖片,滑鼠右鍵->剪下(T) 點選剛剛插入的矩形 滑鼠右鍵->設定形狀格式(O)… 在右側的設定形狀格式對話方塊中,點選圖片或紋理填充§ 下
機器學習基礎(三十五)—— 協同過濾(從匹配使用者到匹配商品)
考慮如下的使用者對影片的打分,由巢狀字典定義: critics = {'Lisa Rose': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.5, 'J
salesforce零基礎學習(九十五)lightning out
隨著salesforce對lightning的推進,越來越多的專案基於lightning開發,導致很多小夥伴可能都並不瞭解classic或者認為不需要用到classic直接就開始了lightning的開發。其實有精力瞭解classic的使用還是很有必要的,因為lightning還在不斷的優化中,可能有一部分還
一個屌絲程序猿的人生(六十五)
努力 成了 策略 你們 日子 人生 我沒 時間 提升 項目演示當天! 教室裏一大早就熱鬧非凡。 張建派的人此刻已經聚集在一起,開始探討起接下來的戰術。 “弟兄們,今天就要開戰了啊。” “是啊!想想還真有些小激動呢!” “對了,張建人呢?” “出去
Android Api Demos登頂之路(四十五)Loader-->Cursor
adapt lists 清空 function icon 創建 nal pat lines 這個demo演示了類載入器的用法。關於類載入器的使用我們在前面的demo中已經介紹過了 在此再小小的復習一下。類載入器的使用步驟: * 1.獲取類載入
【轉】JMeter學習(二十五)HTTP屬性管理器HTTP Cookie Manager、HTTP Request Defaults
agen 讀取 expired fault 範圍 運行時 ear 定制 只有一個 Test Plan的配置元件中有一些和HTTP屬性相關的元件:HTTP Cache Manager、HTTP Authorization Manager、HTTP Cookie Manager
Python學習筆記(四十五)網絡編程(1)TCP編程
包含 ipv sina spa 包括 現在 com 訪問 等等 摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432004374523e49
2016集訓測試賽(二十五)小結
時間 第一題 是我 很多 分析 題目 ... 人的 簡單 這場測試賽有必要小結一下. 昨晚 1 點才睡, 今天狀態很差, 先睡了 1 個小時, 然後開始打比賽. 第一題不大會做, 寫了一個代碼後發現是錯的, 第二題看不懂題, 第三題簡單地分析了一下, 發現是一個樹形
C#編程(二十五)----------接口
目的 count() 聲明變量 form [] 類的繼承 計算機 構造 執行 接口 如果一個類派生自一個接口,聲明這個類就會實現某些函數.並不是所有的面向對象的語言都支持接口. 例如,有一個接口:IDispoable,包含一個方法Dispose(),該方法又類實現,用於清理
企業分布式微服務雲SpringCloud SpringBoot mybatis (二十五)集成swagger2構建Restful API
sel ima eth syn conf ring 但是 batis 關註 一、引入依賴 <dependency> <groupId>io.springfox</groupId> <
Spring Boot教程(三十五)使用MongoDB數據庫(1)
frame 既然 artifact html ace 數據庫 支持 高度 官網 MongoDB簡介 MongoDB是一個基於分布式文件存儲的數據庫,它是一個介於關系數據庫和非關系數據庫之間的產品,其主要目標是在鍵/值存儲方式(提供了高性能和高度伸縮性)和傳統的RDBMS系統
Linux學習筆記(二十五)shell特殊符號、 sort_wc_uniq、tee_tr_split
tee_tr_split命令一、特殊字符 1.‘* ‘任意個任意字符‘? ‘任意一個字符‘# ‘註釋字符‘ \ ‘脫義字符‘ | ‘管道符其中大部分之前都用過,對於脫義符‘\‘脫義符用法舉例如圖 2.幾個與管道有關的命令cut 分割,-d 分隔符 -f 指定段號 -c 指定第幾個字符 sort 排序,