es6中proxy如何使用

news/2024/7/10 22:51:53 标签: es6, javascript, 前端

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

  1. 属性访问拦截
const obj = {
  name: 'Tom',
  age: 18
};

const proxy = new Proxy(obj, {
  get(target, property) {
    console.log(`get ${property}`);
    return target[property];
  },
  set(target, property, value) {
    console.log(`set ${property}=${value}`);
    target[property] = value;
  }
});

proxy.name; // 访问name属性,会输出 "get name"
proxy.age = 20; // 修改age属性,会输出 "set age=20"

  1. 函数调用拦截
const obj = {
  add(a, b) {
    return a + b;
  }
};

const proxy = new Proxy(obj, {
  apply(target, thisArg, argumentsList) {
    console.log(`call add(${argumentsList.join(', ')})`);
    return target.apply(thisArg, argumentsList);
  }
});

proxy.add(1, 2); // 调用add方法,会输出 "call add(1, 2)"

  1. 属性删除拦截
const obj = {
  name: 'Tom'
};

const proxy = new Proxy(obj, {
  deleteProperty(target, property) {
    console.log(`delete ${property}`);
    delete target[property];
  }
});

delete proxy.name; // 删除name属性,会输出 "delete name"

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


http://www.niftyadmin.cn/n/5090226.html

相关文章

5.Python-使用XMLHttpRequest对象来发送Ajax请求

题记 使用XMLHttpRequest对象来发送Ajax请求,以下是一个简单的实例和操作过程。 安装flask模块 pip install flask 安装mysql.connector模块 pip install mysql-connector-python 编写app.py文件 app.py文件如下: from flask import Flask, reque…

云上攻防-云原生篇KubernetesK8s安全APIKubelet未授权访问容器执行

文章目录 K8S集群架构解释(见上图参考)K8S集群攻击点(见上图参考)-重点API Server未授权访问&kubelet未授权访问复现 K8S集群架构解释(见上图参考) Kubernetes是一个开源的,用于编排云平台中多个主机上的容器化的…

Ubuntu 上传项目到 GitHub

一、前言 GitHub 作为时下最大的开源代码管理项目,广泛被工程和科研人员使用,本文主要介绍如何如何将自己的项目程序上传到 GitHub 上。 要上传本地项目到 GitHub 上,主要分为两步,第一步是 二、创建 SSH keys 首先登录 GitHu…

Django框架集成Celery异步-【2】:django集成celery,拿来即用,可用操作django的orm等功能

一、项目结构和依赖 study_celery | --user |-- models.py |--views.py |--urls.py |--celery_task |--__init__.py |--async_task.py |-- celery.py | --check_task.py | --config.py | --scheduler_task.py | --study_celery | --settings.py | --manage.py 依赖&#xff1a…

并联谐振DCDC变换器的设计与仿真

摘 要 在我们日常生活中,并联谐振变换器随处可见,因为其相比其他变换器而言结构相对简单,运行稳定且便于维修等优势,最重要的是并联谐振变换器在并网方面具有很好的优势。随着自动控制技术和微电子技术的不断革新,目前…

Nginx:负载均衡(策略讲解+配置举例)

负载均衡是反向代理内容的延伸。(反向代理可查看前文) 负载均衡 负载均衡(Load Balancing)是一种在多个计算资源(如服务器、网络链接、硬盘驱动器等)之间分配工作负载的技术,旨在优化资源使用…

CSS悬停卡片翻转明信片效果源码附注释

运行效果演示: HTML页面代码: <!DOCTYPE html> <html lang="en" > <head>

docker-machine常用

docker-machine常用 什么是Docker Machine&#xff1f;Docker Machine默认支持的驱动安装kvm驱动 安装和配置Docker Machine环境准备node1安装Dockernode1安装Docker Machine为Docker Machine安装自动补全为Docker Machine准备boot2docker.iso镜像为node2创建machine主机 管理远…