vue里面的 Object.defineProperty 和 Proxy使用优势

首先看 Object.defineProperty

   let m = {
            a: 1,
            b: 2,
            arr: [1, 2, 3]
        }
        let o = {}
        Object.keys(m).forEach((x) => {
            Object.defineProperty(o, x, {
                get() {
                    return m[x]
                },
                set() {
                    return m[x]

                }
            })
        })
        console.log('22', o);

下图打印的结果

a, arr, b 都是有get 和 set方法的,但是数组里面的属性是没有 set 和 get方法的
也就是修改了数组里面的数据,不会 触发set 和 get 方法的

利用递归也是可以修改数据里面的数据,来 触发set 和 get 方法的

之前的作者大大为什么不这样做呢,有 for 循环 需要遍历递归,但是如果对象的属性很多的话,这样的遍历递归是很消耗性能的

在这里插入图片描述

new Proxy

        let m = {
            a: 1,
            b: 2,
            arr: [1, 2, 3]
        }
        let o = new Proxy(m, {
            get(target, key) {
                return target[key];
            },
            set() {

            }
        })
        console.log('oo', o);

Proxy 它也是修改了数组里面的数据,不会 触发set 和 get 方法的
但是它只要递归一次就可以实现我们想要的了。

总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/3073.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【K哥爬虫普法】大众点评VS百度地图,论“数据权属”对爬虫开发的罪与罚!

我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K哥特设了“K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知晓如何合法合规利用…

JQuery

概述: JQuery:JavaScript和查询,他是辅助JavaScript开发的js类库。 他的的核心思想就是write less,do moire 实现了很多浏览器兼容问题 JQuery的核心函数 $(参数) 1 参数是函数:$(function(){}) window.onlooad fun…

ESP32设备驱动-HDC1080温度湿度传感器驱动

HDC1080温度湿度传感器驱动 文章目录 HDC1080温度湿度传感器驱动1、HDC1080介绍2、硬件准备3、软件准备4、驱动实现1、HDC1080介绍 HDC1080 是一款集成温度传感器的数字湿度传感器,可在极低功耗下提供出色的测量精度。 HDC1080 在很宽的电源范围内工作,是一种低成本、低功耗…

【Pytorch】利用PyTorch实现图像识别

本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052 这是目录使用torchvision库的datasets类加载常用的数据集或自定义数据集使用torchvision库进行数据增强和变换,自定义自己的图像分类数据集并使用torchvision库加载它们使…

标准I/O

目录 区别 代码编写 验证 代码如下 利用fopen/fwrite/fclose/fprintf函数实现文件内容复制 区别 下面编写内容没有使用fseek函数,因为fread和fwrite都会自动跟踪读写位置。 fread从源文件读取数据并将文件指针后移,fwrite将读取的数据写入目标文件并…

用Pytorch搭建一个房价预测模型

本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052 目录 一、项目介绍 二、准备工作 三、实验过程 3.1数据预处理 3.2拆分数据集 3.3构建PyTorch模型 3.3.1.数据转换 3.3.2定义模型架构 3.3.3定义损失准则和优化器 3.3.4创建…

【C++】内联函数inline

文章目录概念使用特性原理概念 C中内联函数的出现解决了C语言宏函数的不足,类似于宏展开,这种在函数调用处直接嵌入函数体的函数称为内联函数,又称内嵌函数或内置函数。 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内…

数据结构与算法——堆的基本存储

目录 一、概念及其介绍 二、适用说明 三、结构图示 四、Java 实例代码 五.堆和栈的区别 一、概念及其介绍 堆(Heap)是计算机科学中一类特殊的数据结构的统称。 堆通常是一个可以被看做一棵完全二叉树的数组对象。 堆满足下列性质: 堆中某个节点的值总是不大…

电路设计的一些概念

锁存器的产生 论述1 (转)时序电路,生成触发器,触发器是有使能端的,使能端无效时数据不变,这是触发器的特性。 组合逻辑,由于数据要保持不变,只能通过锁存器来保存。 第一个代码,由于是时序逻…

华为OD机试题,用 Java 解【卡片组成的最大数字】问题 | 含解题说明

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典本篇题目:卡片组成的最大数字 题目 小组…

Liunx下的进程程序替换

文章目录前言1.进程替换1.为啥要进行进程程序替换2.如何进程程序替换呢?3.程序替换失败以及返回值的理解4.进程程序替换的原理2.进程程序替换接口1.execl2.exclp3.execv4.execvp5.补充说明6.execle3.小demo与总结前言 本文主要对Liunx下的进程程序替换进行讲解&…

GitHub Actions工作流搭建

GitHub Actions工作流搭建 GitHub Actions的官方概述如下: GitHub Actions 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行生成、测试和部署管道。 您可以创建工作流程来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生…

SpringBoot实战(十三)集成 Admin

目录一、简介二、搭建 springboot-admin 管理服务1.Maven 依赖2.application.yml3.添加 EnableAdminServer4.启动服务,查看页面三、搭建 springboot-admin-client 客户端服务1.Maven 依赖2.application.yml3.启动服务,查看页面四、搭配 Eureka 使用1.搭建…

技术分享——Java8新特性

技术分享——Java8新特性1.背景2. 新特性主要内容3. Lambda表达式4. 四大内置核心函数式接口4.1 Consumer<T>消费型接口4.2 Supplier<T>供给型接口4.3 Function<T,R>函数型接口4.4 Predicate<T> 断定型接口5. Stream流操作5.1 什么是流以及流的类型5.2…

C语言——字符函数和字符串函数【详解】(一)

文章目录函数介绍1.strlen2.strcpy3. strcat4. strcmp5. strncpy6. strncat7. strncmp8. strstr函数介绍 求字符串长度 strlen 长度不受限制的字符串函数&#xff08;使用时不安全&#xff09; strcpy strcat strcmp 长度受限制的字符串函数介绍&#xff08;与长度不受限制函数…

如何才能做好Android 性能优化?

从事Android开发的人应该都知道&#xff0c;无论是在工作中还是在面试中&#xff0c;性能优化都是一个绕不过的坎&#xff0c;尤其是在一些大厂中&#xff0c;他们对性能的要求把控很严格&#xff0c;甚至将其定位考核标准之中。 像以下场景或多或少&#xff0c;大家都有遇到过…

Vue趣味【Vue3+Element Plus+Canvas实现一个简易画板;支持导出为图片】

目录&#x1f31f;前言&#x1f31f;粉丝先看&#x1f31f;创建Vue3项目&#x1f31f;引入Element Plus&#x1f31f;实现代码&#xff08;详细注释&#xff09;&#x1f31f;写在最后&#x1f31f;JSON包里写函数&#xff0c;关注博主不迷路&#x1f31f;前言 哈喽小伙伴们&a…

new动态内库管理库学习

new文件是动态内存管理库的一部分&#xff0c;特别提供低层内存管理特性。 它包括bad_alloc, bad_array_new_length&#xff0c;nothrow_t&#xff0c;align_val_t类nothrow常量&#xff0c;以及函数 operator newoperator new[],operator deleteoperator delete[],get_new_han…

【统计学习】25个必须掌握的数据分析基础概念

16个必须掌握的数据分析基础概念1. 描述性统计2. 假设性检验2.1 参数检验2.2 非参数检验3. 置信度分析4. 列联表分析5. 相关分析6. 方差分析7. 回归分析8. 聚类分析9. 判别分析10. 主成分分析11. 因子分析12. 时间序列分析13. 生存分析14. 典型相关分析15. ROC分析16. 偏差-方差…

从0到1深度学习环境搭建

目录第一步&#xff1a;安装anaconda第二步&#xff1a;创建一个虚拟环境试一下第三步&#xff1a;确定cuda算力&#xff0c;配置cudapytorch官网找版本pycharm配置pycharm进行设置setting 能够打开conda的shell终端如何给下载的项目设置合适的环境如果必须要低版本的pytorch才…
最新文章