1.vue2的双向数据绑定是通过object.defineproperty 方法 它可以接收三个参数Object.defineproperty(obj, prop, desc),
obj : 第一个参数就是某个对象
prop : 第二个参数就是某个对象的属性
desc : 配置项,一般是一个对象
第三个参数里面还有6个配置属性
writable: 是否可重写
value: 当前值
get: 读取时内部调用的函数
set: 写入时内部调用的函数
enumerable: 是否可以遍历
configurable: 是否可再次修改配置项
![](https://i-blog.csdnimg.cn/blog_migrate/17613ba458dbc24d963002d3477f89ea.png)
![](https://i-blog.csdnimg.cn/blog_migrate/caea0383f6fd7ad66c55fc16e1774919.png)
还有一个简单的示例 大家可以看看 这样可以简单了解双向数据绑定 实际原理需要由浅到深 后续会一步步讲解
1.html
![](https://i-blog.csdnimg.cn/blog_migrate/8880a0a092e2ed531faa8b3ac9bf7bf1.png)
2.js 这里的Object.defineproperty(obj, prop, desc) 可以尝试放在类 或者函数内形成私有域 避免使用全局变量(因为垃圾回收机制不会回收全局变量,大量使用会影响性能)
![](https://i-blog.csdnimg.cn/blog_migrate/93edd4ddcc6912ccea18911442d5f2b2.png)
若有疑问,请留言