一、Object.defineProperty() 控制对象的属性值

let num = 18;
let person = {name: 'mary',age: num;
};Object.defineProperty(person, 'age', {writable: true, // 控制属性是否可以修改. 默认值是 falseenumerable: true, // 控制属性是否可以枚举,默认值是 falseconfigurable: true // 控制属性是否可以被删除,默认值是 false// 当有人读取 person.age 时,get 函数(getter)就会被调用,且返回值就是 age 的值get() {console.log('有人读取了 age 属性');return num;},// 当有人修改 person.age 时,get 函数(setter)就会被调用,就会收到具体修改的值set(val) {console.log('有人修改了 age 属性');age = val;}
})

二、数据代理:

let obj1 = {x: 100};
let obj2 = {y : 200};Object.defineProperty(obj2, 'x', {get() {return obj1.x;},set(val) {obj1.x = val;}
})// 修改 obj2.x 的值,obj1.x 的值也会相应的更改

三、Vue 中的数据代理

<!--1. VueProject 中的数据代理:通过 vm 对象来代理 data 对象中的属性的操作(读/写)2. VueProject 中数据代理的好处:更加方便的操作 data 中的数据3. 基本原理:通过 Object.defineProperty() 把 data 对象中所有属性添加到 vm 上。为每一个添加到 vm 上的属性,都指定一个 getter / setter在 getter / setter 内部去操作(读 / 写)data 中对应的属性vm._data 里面用到数据劫持,为的是监听数据是否发生变化,以便响应式的更新到页面
-->

data 的数据代理相关推荐

  1. 从零学习Vue - 02模板语法、el与data两种写法、mvvm模型、数据代理

    root容器里的代码被称为模板,有了模板会有特殊的模板语法.Vue模板中语法有两大类,一类是插值语法,另一类是指令语法. 插值语法 功能:用于解析标签体内容.写法:{{xxx}},xxx为js表达式, ...

  2. VUE的el和data的写法以及MVVM模型、VUE的数据代理

    第一.VUE的el和data的两种写法: el的两种写法如下: 第一个形式如下: const v = new Vue({//第一种el的写法el:'#demo',data: {name: '三清祖师' ...

  3. Vue2(一):初识Vue、模板语法、数据绑定、el和data的两种写法、MVVM、数据代理、事件

    Vue2学习笔记:第一章 一.初识Vue 1. Vue的特点 2. Vue实例中的el和data 3.总结 二.模板语法 1.插值语法 2.指令语法 三.数据绑定 1.单向数据绑定(v-bind) 2 ...

  4. get vue 和set 用法_深入剖析Vue源码 - 数据代理,关联子父组件

    简单回顾一下这个系列的前两节,前两节花了大篇幅讲了vue在初始化时进行的选项合并.选项配置是vue实例化的第一步,针对不同类型的选项,vue提供的丰富选项配置策略以保证用户可以使用不同丰富的配置选项. ...

  5. Extjs 数据代理

    Ext.data.proxy.Proxy 代理类的根类 客户端代理: 1.LocalStorageProxy:将数据存储在localStorage中,此种方式可以持久的将数据存储在客户端 要使用代理, ...

  6. 流媒体数据代理----Anychat

    "用户流媒体数据代理功能",使用该功能可以实现指定用户将其它用户的流媒体数据(音频.视频)做为自己的数据,转发给请求指定用户相关数据的用户. 应用场景:将指定用户(P)设置为其它用 ...

  7. Vue数据代理与数据监测

    一.数据代理 1.什么是数据代理? 数据代理:通过一个对象代理对另一个对象中属性的操作 2.Vue数据代理 通过vm对象来代理配置对象data中所有属性的操作. (如果想访问data里的数据,可以直接 ...

  8. 【Vue2.0】—数据代理(一)

    [Vue2.0]-数据代理(一) Vue 的数据代理:通过VM对象来代理data对象中属性的操作(读/写) Vue 中数据代理的好处:更加方便的操作data中的数据 基本原理: 通过Object.de ...

  9. vue2知识点:数据代理

    文章目录 一.何为数据代理 二.vue中的数据代理 三.回顾Object.defineProperty() 本人其他相关文章链接 一.何为数据代理 数据代理:通过一个对象代理对另一个对象中属性的操作( ...

最新文章

  1. 清华唐杰:GPT-3表示能力已经接近人类了
  2. php在线考试自动批卷_php网络在线考试组卷系统
  3. getElementsByclassName
  4. BLE 安全之虫洞攻击
  5. Nginx + 阿里云SSL + tomcat 实现https访问代理
  6. Spring基于 XML 的声明式事务控制(配置方式)
  7. linux查找大文件或目录
  8. redis java 视频教程_redis从入门到精通视频教程【50讲全】
  9. 鸟哥的Linux私房菜知识点总结(持续更新中)
  10. stm32学习----正电原子精英板控制电机正反转
  11. delphi 之 override overload
  12. Python-scrapy爬虫
  13. Linux时间同步(Fri Nov 16 12:12:13 Local time zone must be set--see zic manual page 2018)解决办法
  14. 快手-开眼快创 Flutter 实践
  15. java队列处理高并发_Java高并发--消息队列
  16. ThingsBoard GateWay网关安装
  17. RabbitMQ核心概念及基础API应用
  18. 【动态规划】—— 背包问题
  19. 相同和相等的区别。。。
  20. OTP动态令牌工作原理分析

热门文章

  1. mysql安装注意步骤,mysql安装步骤
  2. phpmyadmin管理mysql_用phpMyAdmin管理MySQL数据库_MySQL
  3. snmp 获得硬件信息_计算机网络基础课程—简单网络管理协议(SNMP)
  4. RabbitMQ交换器Exchange介绍与实践
  5. TortoiseGIT创建及合并分支
  6. zoj 1091 Knight Moves
  7. WordPress网站搬家教程(根目录程序+ MySQL数据库)
  8. python property作用_python中@property的作用和getter setter的解释
  9. ad文件服务器部署,AD 集成 – 配置 ADFS 登陆 - Seafile 服务器用户手册
  10. java appender_log4j的Appenders配置方法