• es6中proxy如何使用


    ES6中的Proxy是一个强大的对象拦截器,它可以拦截对象的各种操作,比如属性访问、函数调用等。你可以使用Proxy来控制对象的访问和修改行为,从而实现一些高级特性。下面是使用Proxy的一些例子:

    1. 属性访问拦截
    1. const obj = {
    2. name: 'Tom',
    3. age: 18
    4. };
    5. const proxy = new Proxy(obj, {
    6. get(target, property) {
    7. console.log(`get ${property}`);
    8. return target[property];
    9. },
    10. set(target, property, value) {
    11. console.log(`set ${property}=${value}`);
    12. target[property] = value;
    13. }
    14. });
    15. proxy.name; // 访问name属性,会输出 "get name"
    16. proxy.age = 20; // 修改age属性,会输出 "set age=20"

    1. 函数调用拦截
    1. const obj = {
    2. add(a, b) {
    3. return a + b;
    4. }
    5. };
    6. const proxy = new Proxy(obj, {
    7. apply(target, thisArg, argumentsList) {
    8. console.log(`call add(${argumentsList.join(', ')})`);
    9. return target.apply(thisArg, argumentsList);
    10. }
    11. });
    12. proxy.add(1, 2); // 调用add方法,会输出 "call add(1, 2)"

    1. 属性删除拦截
    1. const obj = {
    2. name: 'Tom'
    3. };
    4. const proxy = new Proxy(obj, {
    5. deleteProperty(target, property) {
    6. console.log(`delete ${property}`);
    7. delete target[property];
    8. }
    9. });
    10. delete proxy.name; // 删除name属性,会输出 "delete name"

    1. 非严格模式下的属性不存在拦截
    const obj = {
    

  • 相关阅读:
    【软考】文件的组织结构
    太厉害了,终于有人能把文件上传漏洞讲的明明白白了
    软件工程复习题
    Virtink:更轻量的 Kubernetes 原生虚拟化管理引擎
    用git stash暂存修改
    【前端】尚硅谷Webpack教程笔记
    推荐的Pytest插件
    vim 多行注释
    java基础
    C++中 while循环和for循环优缺点
  • 原文地址:https://blog.csdn.net/weixin_59525879/article/details/133834173