JavaScript Handler get() 方法
JavaScript 中的 handler.get() 方法是 Proxy 对象的一部分,用于拦截目标对象的属性访问。该方法接受两个参数:目标对象和被访问的属性。当属性被访问时,会触发此方法,允许自定义行为,例如日志记录、在返回属性值之前进行验证。它通常用于在 JavaScript 应用程序中实现数据验证或调试等功能。handler.get() 提供了一种强大的方法来自定义 JavaScript 对象中属性的访问方式,使开发者能够创建更灵活的代码。
语法
以下是 JavaScript handler.get() 方法的语法 -
new Proxy(target, {
get(target, property, receiver) {}
});
参数
- target − 保存目标对象。
- property − 待获取属性的名称或符号。
- receiver − 代理或继承自代理的对象。
返回值
此方法返回任意值。
示例 1
我们来看以下示例,我们将访问对象的属性。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {
car: 'RS6',
model: 2018
};
const y = {
get: function(target, prop) {
return x[prop];
}
};
const z = new Proxy(x, y);
document.write(z.car);
</script>
</body>
</html>
输出
如果我们执行上述程序,它将在网页上显示一段文本。
示例 2
考虑另一种场景,我们将使用数组索引访问属性。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = [11, 23, 33, 44];
const y = {
get: function(target, prop, receiver) {
if (prop === 'first') {
return x[0];
}
return x[prop];
}
};
const z = new Proxy(x, y);
document.write(z[1]);
</script>
</body>
</html>
输出
执行上述脚本后,网页上会显示一个数字。
示例 3
在下面的示例中,我们将检查对象上是否存在该属性。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {
bike: "Hayabusa",
model: 2024
};
const y = {
get: function(target, prop, receiver) {
if (prop in x) {
return x[prop];
} else {
return 'Property does not exist.';
}
}
};
const proxy = new Proxy(x, y);
document.write(proxy.bike + " < br > ");
document.write(proxy.engine);
</script>
</body>
</html>
当我们执行上述代码时,它将生成由网页上显示的文本组成的输出。

