[](()1.VUE中实现数据代理
把所有data中的数据代理到new出来的Vue实例上
class Vue {
//options是传过来的参数类似一个对象
constructor(options){
//把options存起来,可能会在实例中用到
this.$options = options
//data可能会是函数
this._data = options.data
this.initData()
}
initData() {
let data = this._data;
//获取到data对象中所有的键
let keys = Object.keys(data)
//循环遍历
for(let i = 0 ; i < keys.length ; i++){
//第一个参数是this也就是Vue实例,现在的目标就是把data中的数据代理到Vue实例上
//第二个参数是需要代理的属性
Object.defineProperty(this,keys[i],{
//设置为true,表示可以被遍历
enumerable:true,
//可以删除属性,或者修改其特性(writable,configurable,enumerable)
configurable:true,
//获取值的时候触发
get:function proxyGetter(){
//获取到的值返回出去
return data[keys[i]]
},
//修改值的时候触发
set:function