
文章插图
数组当中是可以用字符串来获取元素值的(很少)
完整代码
// 这有一个对象,对象有两个属性let data = https://www.huyubaike.com/biancheng/{name:"waves",age: 0}// 实例化一个监视器对象let observer = new Observer(data);// 监视对象Observerfunction Observer(obj){// 1、获取data当中的所有key值let properties = Object.keys(data); // ["name","age"]// 2、迭代 properties数组properties.forEach((property)=>{// 3、在迭代的过程当中,使用definedProperty进行数据代理Object.defineProperty(this,property,{// 配置get和setget(){// 很简单,因为data没有做数据代理,返回data[property]即可return data[property]; // data["name"] = waves},set(val){// 赋值即可data[property] = val}})})}
总结- 我们这里设置了一个data
文章插图
- 通过我们的一系列配置,data身上有的属性,Observer实例身上也有
- 并且,这个observer身上的属性都做了数据代理
- 当然,vue写的比我们完善的多
- 比如,如果data当中还存在对象怎么办?

文章插图
vue在这里写了递归,一直找,找到这个属性不再是对象为止

文章插图
数组也是一个道理,vue也能给你找出来,不过 关于数组和对象的代理,这二者的处理方式不同,下节会讲解
经验总结扩展阅读
- 2023二本理科最吃香的专业 如何选专业
- 新房装修室内风水如何布局 新房装修有哪些风水讲究
- 厨房推拉门如何选择 厨房推拉门吊轨好还是地轨好呢
- 简笔画如何画漫画羊(简笔画羊的画法大全简单)
- 简单的绵羊怎么画(如何画简单的绵羊)
- 如何快速高效地煲耳机(自然煲耳机方法)
- 蓝牙耳机如何煲机(新耳机要如何正确煲机)
- 餐厅空间小如何设计 开门见餐厅的房子如何设计
- 高考如何选大学和专业 有哪些方法
- 厨房橱柜如何设计实用 厨房橱柜设计原则是什么