一个 js 对象包含数据属性和访问器属性
let obj = {
name:"Jay",
get info(){
console.log("我叫" + this.name)
},
set info(param){
this.name = param
}
}
1.数据属性
包含一个数据值的位置,在这个位置可以读取和写入值。
人话:就字面意思,比如上面例子中 obj 的数据属性就是 name 属性
数据属性包含四个特性:
- configurable:是否可以被 delete 删除,默认 true
- enumerable:是否能通过 for-in 循环遍历,默认 true
- writable:是否可以修改属性的值,默认 true
- value:保存这个属性的数据值,默认 undefined
2.访问器属性
访问器属性不包含数据值。它包含一对 getter 和 setter 函数。
访问器属性有四个特性:
- [[Configurable]]:默认为 true 。表示能否通过 delete 删除属性从而重新定义属性,能否修改属性特性,或者能否把属性修改为访问器属性;
- [[Enumerable]]:默认为 true。表示能否通过 for-in 循环返回属性;
- [[Get]]:读取属性时调用的函数,默认为 undefined;
- [[Set]]:写入属性时调用的函数,默认为 undefined。
参考:MDN 对象初始化