回顾 object.defineProperty() 方法
区别defineProperty == 给对象定义属性用的
需要传递三个基本参数
- 需要定义属性的对象名
- 你要定义的属性叫什么名字(比如给person这个实体添加一个age属性)
- 配置项(对象类型的参数,里面存放键值对)
![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/1056135Y8-0.png)
文章插图
<script>// 创建一个对象,该对象有两个基本属性var person = {name:"张三",sex:"男"}// 为person对象添加属性// 1、给那个对象添加?// 2、添加的属性名是什么?// 3、这个属性的基础配置项(对象类型,键值对形式)Object.defineProperty(person,"age",{value:18, // 该属性的值是})</script>
需求1- 给 对象person,添加一个属性age,有几种方式?
- 三种
- 直接在 person对象当中添加属性;该属性值可以修改
文章插图
- 通过 .属性;对其设置;该属性值可以修改
文章插图
- 通过 Object.finedProperty()进行添加;该属性值不可枚举(不可修改) 默认情况下
文章插图
- 直接在 person对象当中添加属性;该属性值可以修改
![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/105613G19-4.png)
文章插图
如果不设置配置项,那么该属性是不可枚举的;在控制台中可以看到,颜色变浅了
![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/105613N35-5.png)
文章插图
该属性不参与遍历,我们可以测试下
![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/10561311P-6.png)
文章插图
基本配置项value最开始配置的
![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/105613I93-7.png)
文章插图
enumerable
![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/10561355Q-8.png)
文章插图
Object.defineProperty(person,"age",{value:18, // 该属性的值是enumerable:true, // 该配置项控制添加的属性是否参与枚举})
writable设置属性是否可以被修改![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/105613EG-9.png)
文章插图
configurable控制属性是否可以被删除
没有通过函数添加age属性的person对象
![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/10561333C-10.png)
文章插图
通过函数添加age属性的person对象删除属性
![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/1056131226-11.png)
文章插图
设置配置项删除掉age属性
![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/1056131293-12.png)
文章插图
需求2
- 准备一个变量 number,值为18
- person当中有一个age属性,这个属性的value 是 number(不是手写的18)
![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/1056134V7-13.png)
文章插图
问题所在
- 这个变量的值可能会发生改变,如果呢?
文章插图
- 修改number,person对象当中的age值并没有发生改变
- 同理,修改age,number也不会发生改变
![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/1056133423-15.png)
文章插图
那怎么完成这个需求呢?
![7_vue的数据代理,双向绑定](http://shimg.jingyanzongjie.com/230726/1056133935-16.png)
经验总结扩展阅读
- 2023年农历八月十九宜开业吗 2023年10月3日是开业的黄道吉日吗
- 2023年10月3日是公司注册的黄道吉日吗 2023年农历八月十九公司注册吉日
- 2023年2月7日是安装家电的黄道吉日吗 2023年2月7日适合安装家电吗
- 2023年2月7日是买车的黄道吉日吗 2023年2月7日买车好吗
- 2023年农历八月十九换门吉日 2023年10月3日是换门的黄道吉日吗
- 2023年农历八月十九宜安机器吗 2023年10月3日是安机器的黄道吉日吗
- 2023年农历正月十七送聘礼吉日 2023年2月7日是送聘礼的黄道吉日吗
- 2023年10月3日是安纺车的黄道吉日吗 2023年10月3日安纺车黄道吉日
- 2023年10月3日是买房的黄道吉日吗 2023年10月3日买房好吗
- 2023年10月3日是房子过继的黄道吉日吗 2023年10月3日适合房子过继吗