Vue数据代理

Object.defineProperty()方法

添加的属性不会被遍历到

给对象添加(定义)属性的方法

Object.defineProperty(对象名,'要添加的属性名',{配置项,如value:18})

第三个参数配置项

enumerable:(控制属性是否可以被枚举,默认false)为true可以使添加的属性可被遍历

writable:控制属性是否可以被修改,默认false

configurable:控制属性是否可以被删除,默认false

get(){ return number }:当有人读取该对象被添加属性时被调用(getter),返回值为添加属性的值。number被定义

set(value){ number=value}:当有人修改该对象被添加属性时被调用(setter),且会受到修改的具体值。number被定义

数据代理

通过一个对象代理对另一个对象中属性的操作(读/写)

let obj={x:100};
let obj1={y:200};

Object.defineProperty(obj1,'x',
	{
		get(){
			return obj.x
		},
		set(value){
			obj.x=value
		}
	}
)

Vue的数据代理

通过vm来代理data对象。

好处:更加方便操作data中数据

每条数据都有属于自己的getter和setter

通过Object.defineProperty()方法vm将data里得数据存到了自身的“_data”属性中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值