美文网首页
Proxy的简单使用

Proxy的简单使用

作者: 大梦无痕 | 来源:发表于2023-12-27 10:21 被阅读0次
function fun(person){
    return new Proxy(person,{
        get:function(target,property){
            if(property in target){
                return target[property]
            }else{
                //属性不存在时返回的默认值
                return undefined;
            }
        },
        set:function(target,property,value){
            console.log(target,property,property in target);
            if(target[property]!=value){
                target[property] = value;
            }else{
                console.log("值没有发生变化,无需要重新赋值");
            }
        }
    })
}
let rows = fun({name:'王雪'});
rows.name = '王雪';
rows.age = 120;
console.log(rows);

Proxy 是ES6中提供的一个非常强大的功能,可以用来代理另一个对象,从而拦截、监视并修改这个对象的各种操作

首先是Proxy()的参数:

arget:被代理的对象。
handler:被代理对象上的自定义行为,也就是对arget进行处理的地方
handler处理函数一都有:

get(target, propKey, receiver):拦截对象属性的读取操作。
set(target, propKey, value, receiver):拦截对象属性的设置操作,返回一个布尔值
has(target, propKey):拦截 propKey in proxy 操作,返回一个布尔值
deleteProperty(target, propKey):拦截对象属性的删除操作,返回一个布尔值
apply(target, object, args):拦截 Proxy 实例作为函数调用的操作。
construct(target, args, newTarget):拦截 Proxy 实例作为构造函数调用的操作,返回一个对象

相关文章

网友评论

      本文标题:Proxy的简单使用

      本文链接:https://www.haomeiwen.com/subject/bayrndtx.html