{site_name}

{site_name}

🌜 搜索

ES6 Proxy 是一种 JavaScript 对象,它允许我们创建一个代理对象来拦截对另一个对象的访问

前端 𝄐 0
es6 es7,es6 es7对比,es6 es8 对比,es6 es5,es6 es2015,es6 es7新特性
ES6 Proxy 是一种 JavaScript 对象,它允许我们创建一个代理对象来拦截对另一个对象的访问。使用 Proxy,我们可以在目标对象上定义自定义行为,例如捕获属性的读取或写入,修改属性值,拦截函数调用等。

下面是一个简单的例子,其中 Proxy 拦截了对 person 对象的访问和操作:

javascript
// 定义一个普通对象
const person = {
firstName: "John",
lastName: "Doe"
};

// 创建一个代理对象
const personProxy = new Proxy(person, {
get(target, property) {
// 当尝试访问属性时,返回大写格式的属性名
return target[property].toUpperCase();
},
set(target, property, value) {
// 当尝试设置属性时,将值转换为小写格式并保存
target[property] = value.toLowerCase();
}
});

console.log(personProxy.firstName); // 输出 "JOHN"
personProxy.lastName = "SMITH";
console.log(person.lastName); // 输出 "smith"


在上面的例子中,我们创建了一个代理对象 personProxy,它拦截了对 person 对象的访问和操作。当我们尝试访问 personProxy 的属性时,例如 firstName,get 方法会被触发,并返回大写格式的属性名。同样,当我们尝试设置 personProxy 的属性时,例如 lastName,set 方法会被触发,并将值转换为小写格式并保存到 person 对象中。