摘要:更多前端技術和知識點,搜索訂閱號菌訂閱方法創建代理模式使用可以方便的創建一個和攔截器方法創建代理模式在之前,通常使用這個方法實際的請關注我的訂閱號,不定期推送有關的技術文章,只談技術不談八卦
?? 更多前端技術和知識點,搜索訂閱號 JS 菌 訂閱Proxy 方法創建代理模式
使用 Proxy API 可以方便的創建一個 get 和 set 攔截器
let obj = { name: "oli", canSave: false, blackbox: true }; let proxyObj = new Proxy(obj, { set(obj, prop, val) { if (obj.canSave && prop === "name") { obj.name = val; } else return; }, get(obj, prop) { if (obj.blackbox) { return null } else return obj[prop] } });Object.defineProperty 方法創建代理模式
在 ES6 之前,通常使用 Object.defineProperty 這個方法:
let obj = { _name: "oli", // 實際的 name canSave: false, blackbox: true }; let proxyObj = Object.defineProperty(obj, "name", { set(val) { if (obj.canSave) { obj.name = val; } else return; }, get() { if (obj.blackbox) { return null } else return obj._name } });
請關注我的訂閱號,不定期推送有關 JS 的技術文章,只談技術不談八卦
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106420.html
摘要:下面總結了它倆的異同相同點都需要實現同一個接口或者繼承同一個抽象類,并且代理角色和裝飾角色都持有被代理角色和構件角色的引用。 寫完上一篇之后有小伙伴問我有沒有寫過代理模式,想看看我的理解。原本我的設計模式系列是按照創建型-行為型-結構型的順序寫下去的,既然小伙伴誠心誠意了,我就大發慈悲的穿插一篇代理模式。開玩笑,題外話。 說起代理模式,就不由得想起經紀人,說起經紀人,就想起了...對,...
摘要:簡介代理模式和裝飾者模式是兩種常見的設計模式。這里通過構造函數的參數將被代理對象傳入到代理中,也可以通過其它方式,如提供一個方法。下面是的代碼輸出首先依然是先創建一個需要被代理的對象,然后把它傳入到的構造函數中。 簡介 代理模式和裝飾者模式是兩種常見的設計模式。代理模式是為其它對象提供一種代理以控制對這個對象的訪問。在某些情況下,一個對象不適合或者不能直接引用另一個對象,而代理對象可以...
摘要:代理設計模式代理模式為其他對象提供一種代理以控制對這個對象的訪問。代理模式是常見的設計模式之一是指不直接調用實際的對象,而是通過代理對象,來間接的調用實際的對象。對象類定義了代理對象所代表的目標對象。 代理設計模式 代理模式:為其他對象提供一種代理以控制對這個對象的訪問。代理模式是常見的設計模式之一,是指不直接調用實際的對象,而是通過代理對象,來間接的調用實際的對象。為什么要采用這種間...
閱讀 1594·2019-08-30 13:18
閱讀 1582·2019-08-29 12:19
閱讀 2120·2019-08-26 13:57
閱讀 4146·2019-08-26 13:22
閱讀 1190·2019-08-26 10:35
閱讀 2995·2019-08-23 18:09
閱讀 2508·2019-08-23 17:19
閱讀 685·2019-08-23 17:18