文章插图

文章插图
- age 属性 是有的
- 但是 value 是多少,目前不知道(...)
- 想知道怎么办?点进去嘛

文章插图
get函数

文章插图
写个代码测试一下,打印一句话

文章插图

文章插图
看样子是的 , 我前面的措辞有问题
number与age进行关联

文章插图
对number值进行修改

文章插图
那么对age修改呢?

文章插图
问题所在
- 一定是 先访问age
- 再调用getter
- 当number的value发生改变的时候
- 再次访问age,那么就重新调用了getter函数
- 重新调用getter , 会返回number,而这个number是修改过的,所以这边数据是同步了

文章插图
修改number,再访问age;成功

文章插图
set(setter)配置项同理,既然有get , 那么与之相辅相成的就是set
当你对age属性进行修改的时候,set(setter)函数就被调用
且,调用的时候 , 会收到具体修改的 值
/*** 需要传递一个参数value* 被调用的时候 , 会收到具体修改的值*/set(value){// 当你对age属性进行修改的时候,set(setter)函数就被调用// 被调用的时候,会收到具体修改的值console.log("pseron.age属性发生修改,修改的值是",value);}
测试
文章插图
实现双向绑定
- get函数
- 实现了 number 与 age 的绑定,number发生修改的时候,age会发生变化
- 当 age的值发生变化的时候 , number值不变,所以无论怎么修改,age的值 === number
- set函数
- 实现了 age 与 number 的绑定,age的值发生变化的时候,number的值也会跟着变化
- set函数会接到 age所修改的value,将value 赋值 给 number , 完成双向绑定

文章插图
测试

文章插图
总结通过案例
- number 与 person,是两个东西
- 但是借助 Object.defineProperty,使二者进行了关联
- person,确实是一个对象,age确实是person当中的属性
- 但是值呢?你现用,我现去给你取
- 靠谁?。?== get
- 靠谁改? == set
推荐阅读
- break ,continue,retrun的区别
- 食物语金身邪像贪欲怎么打
- 明日之后茶叶食谱有哪些
- 原神绿剑抽要不要抽
- 不思议迷宫阴森的古堡怎么通关
- Z690主板价格_Z690主板多少钱
- 随身WiFi是什么意思,怎么用的(随身wifi有什么意义)
- 随身WiFI是怎么用的(随身wifi激活的步骤)
- 电脑的分辨率怎么调(win10电脑分辨率)
- [WPF] 抄抄超强的苹果官网滚动文字特效实现