2025/1/21 学习Vue的第四天

ops/2025/1/22 21:43:16/

睡觉。

---------------------------------------------------------------------------------------------------------------------------------

11.Object.defineProperty

1.在我们之前学习JS的时候,普通得定义一个对象与属性。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>回顾object.defineProperty方法</title>
</head>
<body><script>let Person = {name:'张三',sex:'男',age:18}console.log(Person)</script>
</body>
</html>

我们会发现能够正常输出

2.如果我们想在此写法的对象外面添加属性,应该如何书写?

 <!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>回顾object.defineProperty方法</title>
</head>
<body><script>let Person = {name:'张三',sex:'男',age:18    }Object.defineProperty(Person,'address',{value:'黄冈'})console.log(Object.keys(Person))</script>
</body>
</html>

打开控制台我们会发现:额外添加的address属性,不能参与遍历

3.得到对象一系列属性的方法是:

console.log(Object.keys(Person))

并不能得到address属性

4.让我们试着书写遍历的代码看看能不能遍历得到address。使用for in

    for(var key in Person){console.log(Person[key])}

我们发现并没有得到address的值,这说明我们不能控制额外添加的属性值

那么如何控制额外添加的属性呢?

5.如何控制,使得额外添加属性可修改可遍历可删除

   Object.defineProperty(Person,'address',{value:'黄冈',enumerable:true,//控制属性是否可以枚举writable:true,//控制属性是否可以被修改configurable:true//控制属性是否可以被删除})

6.将额外的属性定义在Object外面,再由Object.defineProperty修改

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>回顾object.defineProperty方法</title>
</head>
<body><script>var add ='武汉'let Person = {name:'李四',sex:'男',age:18    }Object.defineProperty(Person,'address',{//     value:'黄冈',//    enumerable:true,//控制属性是否可以枚举//   writable:true,//控制属性是否可以被修改//   configurable:true//控制属性是否可以被删除get(){console.log('有人读取了')return add},set(){console.log('有人修改了')return add}})// for(var key in Person){//     console.log(Person[key])// }console.log(Person)// console.log(Object.keys(Person))</script>
</body>
</html>

12.理解数据代理

通过一个对象代理,对另一个对象中属性的操作

1.让我们使用一个简单的例子来实现。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>理解数据代理</title>
</head>
<body><script>let A={name1:'苏高阳'}let B={name2:'赵丽颖'}Object.defineProperty(A,'name2',{get(){console.log('读取B')return B.name2},set(value){console.log('修改A')A.name1=value}})</script>
</body>
</html>

2.我们发现通过Object.defineproperty传入一个对象,传入其他对象的属性,可以改变两个对象的属性。

加深了我们对于数据代理的理解。

13.Vue中的数据代理

1.Vue中的数据代理:

通过vm对象来代理data对象中属性的操作(读写)

2.Vue中数据代理的好处:

更加方便的操作data中的数据

3.基本原理:

通过Object.defineProperty()把 data对象中所有属性添加到vm上。

为每一个添加到vm上的属性,都指定一个getter/setter

在getter/setter内部去操作(读/写)data中对应的属性


http://www.ppmy.cn/ops/152286.html

相关文章

(01)FreeRTOS移植到STM32

一、以STM32的裸机工程模板 任意模板即可 二、去官网上下载FreeRTOS V9.0.0 源码 在移植之前&#xff0c;我们首先要获取到 FreeRTOS 的官方的源码包。这里我们提供两个下载 链 接 &#xff0c; 一 个 是 官 网 &#xff1a; http://www.freertos.org/ &#xff0c; 另…

【Linux】多线程(二)

目录 七、生产者消费者模型7.1 生产者消费者模型的理解7.2 基于BlockingQueue的生产者消费者模型 八、POSIX信号量8.1 信号量的回顾8.2 POSIX信号量的相关接口8.3 基于环形队列的生产消费模型8.3.1 基于环形队列的生产消费模型的原理8.3.2 基于环形队列的生产消费模型的实现 九…

Oracle SQL: TRANSLATE 和 REGEXP_LIKE 的知识点详细分析

目录 前言1. TRANSLATE2. REGEXP_LIKE3. 实战 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 1. TRANSLATE TRANSLATE 用于替换字符串中指定字符集的每个字符&#xff0c;返回替换后的字符串 逐一映射输入字…

20250118-读取并显示彩色图像以及提取彩色图像的 R、G、B 分量

读取并显示彩色图像以及提取彩色图像的 R、G、B 分量 import cv2 # 彩图 R、G、B 的提取 import numpy as np from PIL import Image from matplotlib import pyplot as plt1. 读取并显示彩色图像的三种方法&#xff1a; img_path "./data/yndx"1.1 使用 PIL 读取…

Spring Boot 中高并发场景下的数据一致性问题与解决方案

引言 在高并发场景下&#xff0c;数据一致性是一个常见的挑战。尤其是在 Spring Boot 项目中&#xff0c;使用 Transactional 注解时&#xff0c;如果没有正确处理并发问题&#xff0c;可能会导致数据不一致的情况。例如&#xff0c;在用户注册接口中&#xff0c;多个并发请求…

设计模式-模板方法实现

文章目录 模式结构模式特点示例代码输出结果关键点解析模式的优缺点使用场景总结 模板方法模式&#xff08;Template Method Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一个操作中的算法骨架&#xff0c;而将某些步骤的实现延迟到子类中。通过这种方式&…

一文大白话讲清楚webpack基本使用——6——热更新及其原理

文章目录 一文大白话讲清楚webpack基本使用——6——热更新及其原理1. 建议按文章顺序从头看&#xff0c;一看到底&#xff0c;豁然开朗2. 啥是热更新HMR3. 热更新怎么用4.热更新的原理 一文大白话讲清楚webpack基本使用——6——热更新及其原理 1. 建议按文章顺序从头看&…

为什么数据库不应该使用外键

一、引言 当我们需要持久化地存储数据时&#xff0c;关系型数据库通常是首选。它不仅种类丰富、稳定&#xff0c;而且得到了广泛社区的支持。本文将探讨关系型数据库中的一个重要概念——外键&#xff08;Foreign Key&#xff09;。 二、外键的作用 在关系型数据库中&#xf…