在js中我们可以通过下面这几种方法定义属性
let obj = {};
obj.a = '1';
let obj02 = {
name:'tom',
age:22
}
let obj03 ={};
Object.defineProperty(obj03,'x',{
value:'欢迎你'
})
从上面看,使用Object.defineProperty好像很麻烦,为什么还要使用呢,vue.js和avalon.js 都是通过它实现双向绑定的。 Object.defineProperty阐述了响应式的原理。所以defineProperty有必要了解一下了
语法:
defineProperty();直接在一个对象上定义一个新属性,或者修改一个已经存在的属性
接收三个参数,而且都是必填的
Object.defineProperty( 对象,要添加的属性,{ 属性描述器 } );
一个参数:object 目标对象
第二个参数:propertyname 需要定义的属性或方法的名字。
第三个参数:descriptor 属性描述器,即目标属性所拥有的特性。
1、value:设置属性的值
2、configurable:是否可配置,默认为 ture,
3、enumerable</