vue--数据代理

1、Object.defineProperty 方法

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	
	<script type="text/javascript">
		let Person = {
			name:"张三",
			sex:"男"
		}

		Object.defineProperty(Person, "age", {
			// value:18,
			// enumerable: true ,//控制属性是否可以可以枚举,默认值是 false
			// writable: true,//控制属性是否可以被修改,默认false
			// configurable: true//控制属性是否可以被删除,默认是 false

//当有人 读取Person 属性时候,get 函数(getter) 就会被调用,且返回值就是 age的值
			get:function() {
				console.log('有人读取Person 数据了')
				return 20;
			},
			//当有人修改 person 的age 属性时候,set 函数(setter)就会调用,且会收到修改的具体值
			set(value){
				console.log('有人修改了age属性,其值是:',value)
			}
		})
		//Object.defineProperty 中的属性,不能枚举(也就是不能遍历)

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

		console.log(Person)
	</script>

</body>
</html>

2、数据代理图示

在这里插入图片描述
_data 代理了 data 的值。

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值