JavaScript 中的 proxy() 对象有什么用?
javascriptobject oriented programmingfront end technology
Proxy()
ECMAScript 6 引入的新功能之一是 proxy() 对象。 Proxy() 对象用于定义基本操作的自定义行为(例如,属性查找、赋值、枚举、函数调用等)。
Proxy() 对象包含 3 个关键术语
1) handler - 它是一个包含陷阱的占位符对象。
2) traps - 陷阱提供属性访问。
3) target - 它是一个代理虚拟化的对象。
语法
var p = new Proxy(target, handler);
在下面的例子中,有一个名为 'p' 的对象,它有一些属性。当我们尝试执行对象中未定义的属性时,将执行 undefined,如输出所示。
示例
<html> <body> <script> var p = { Name: 'Ram kumar', Age: 27 }; document.write(person.Name); document.write("</br>"); document.write(person.Age); document.write("</br>"); document.write(person.designation); </script> </body> </html>
输出
Ram kumar 27 undefined
当使用 proxy() 时,我们可以消除未定义的输出。Proxy() 尝试使用"get"关键字捕获未知属性。在 proxy() 内定义的处理程序会将 target 和请求的键名传递到"get"陷阱中。
在下面的例子中,对象"p"最初没有指定和角色。但后来当 proxy() 出现时,对象及其属性被使用"get"捕获,并且未分配的属性显示如输出中所示。
示例
<html> <body> <script> var p = { Name: 'Ram kumar', Age: 27 }; var handler = { get: function(target, prop) { return prop in target ? target[prop] : 'Content developer'; } }; var prox = new Proxy(p, handler); document.write(prox.Name); document.write("</br>"); document.write(prox.Age); document.write("</br>"); document.write(prox.designation); document.write("</br>"); document.write(prox.role); </script> </body> </html>
输出
Ram kumar 27 content developer content developer