众所周知,Vue的两大重要概念:
数据驱动
组件系统
12
接下来我们浅析数据双向绑定的原理 一、vue2 1、认识defineProperty
vue2中的双向绑定是基于defineProperty的get操作与set操作,那么我们简单认识下defineProperty, 作用: 就是直接在一个对象上定义一个新属性,或者修改一个已经存在的属性。 那么我们先来看下Object.getOwnPropertyDescriptor(),有定义方法就会有获取方法,对这就是与defineProperty相对的方法,它可以获取属性值。
var a ={ b:1, c:2 } console.log(Object.getOwnPropertyDescriptor(a,‘b’)); //查看获取b属性
这就是打印出来的结果,configurable的意思是可便利,enumerable的意思是可枚举,writable的意思是可写。 2、使用defineProperty实现简单的私有变量
知道了属性内部的属性值,我们可以使用defineProperty来实现一个私有变量。
var a ={ b:1, c:2 } Object.defineProperty(a,‘b’,{ writable:false //不可写 }) console.log(Object.getOwnPropertyDescriptor(a,‘b’)); //查看获取b属性
发现,改变不了a.b的值。
另外,还可以使用一个很快捷的方法实现私有变量
var a ={ b:1, c:2 } Object.freeze(a,‘b’); //冻结,可理解为变为私有属性 // Object.seal(a,‘b’); //configurable置为false console.log(Object.getOwnPropertyDescriptor(a,‘b’)); //查看获取b属性 更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/119328259
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有