Proxy handler.construct() 方法
關於Proxy更多內容可以參閱Proxy和Reflect一章節。
此方法會攔截Proxy例項作為建構函式呼叫的操作;返回值是一個物件。
語法結構:
[JavaScript] 純文字檢視 複製程式碼var p = new Proxy(target, { construct: function(target, argumentsList, newTarget) { //code } });
引數解析:
(1).target:可選,要被代理的目標物件,一個函式。
(2).argumentsList:可選,p用作建構函式時被傳遞的引數。
(3).newTarget:可選,Reflect.construct()第三個引數,newTarget被用作建構函式。
Reflect.construct()具體用法可以參閱Reflect.construct()用法一章節。
特別說明:如果返回值不是一個物件會報錯。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let target = function (webName, url) { this.webName = webName; this.url = url; } var p = new Proxy(target, { construct: function (target, argumentsList) { return { webName: argumentsList[0], url: argumentsList[1] }; } }); console.log(new p("螞蟻部落", "www.softwhy.com")["webName"]);
argumentsList就是傳遞給p()的引數。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let target = function (webName, url) { this.webName = webName; this.url = url; } var p = new Proxy(target, { construct: function (target, argumentsList) { return "螞蟻部落" } }); console.log(new p());
construct()返回值必須是一個物件,否則會報錯。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let target = function (webName, url) { this.webName = webName; this.url = url; } let newTarget=function(){ this.address="青島市南區"; } var p = new Proxy(target, { construct: function (target, argumentsList, newTarget) { console.log(argumentsList); console.log(newTarget); return {}; } }); Reflect.construct(p, ["螞蟻部落", "www.softwhy.com"], newTarget)
相關文章
- Proxy.revocable() 方法
- Proxy handler.has() 方法
- Proxy handler.get() 方法
- Proxy handler.deleteProperty() 方法delete
- Proxy handler.getOwnPropertyDescriptor() 方法
- Proxy handler.apply() 方法APP
- Proxy handler.setPrototypeOf() 方法
- Proxy handler.defineProperty() 方法
- Proxy handler.getPrototypeOf() 方法
- Proxy handler.set() 方法
- Proxy handler.ownKeys() 方法
- Proxy handler.isExtensible() 方法
- Proxy handler.preventExtensions() 方法
- 淺談jQuery中$.proxy()工具方法jQuery
- Proxy代理資料攔截方法
- Many To Many could not initialize proxy – no Session的解決方法Session
- 使用 `open-uri.with_proxy` 方法開啟網頁網頁
- Proxy
- docker – nginx – proxy_pass + proxy_redirectDockerNginx
- ShardingSphere-Proxy 前端協議問題排查方法及案例前端協議
- Proxy invocationHandler
- Proxy模式模式
- proxy 收集
- Proxy 攔截
- Proxy介紹
- 代理模式(Proxy)模式
- 2.1.2.3 Proxy PDBs
- 初識Proxy
- JavaScript 之 ProxyJavaScript
- go 語言 proxy.golang.org timeout 無法訪問 處理方法Golang
- 代理(Proxy)的解析
- Cglib proxy探祕CGLib
- 代理模式(Proxy Pattern)模式
- Proxy使用詳解
- 安卓 no_proxy安卓
- zabbix分散式proxy分散式
- Proxy例項set()
- What are the benefits of using an proxy?