对象是一组属性的无序集合
创建对象的方式:1、创建object的一个新实例,然后再给它添加属性和方法。
2、使用对象字面量创建
属性的类型
ECMA-262使用一些内部特性来描述属性的特征
为了将某个特性标识为内部特性,规范会用两个中括号把特性括起来 [[Enumerable]]
属性分为数据属性和访问器属性
1、数据属性
数据属性包含一个保存数据值的位置。
数据属性有4个特性描述他们的行为
[[Configurable]] :表示属性是否可以通过delete删除并重新定义,是否可以修改它的特性,以及是否可以把它改为访问器属性。
[[Enumberable]]表示属性是否可以通过for-in循环返回
[[Writable]]表示属性的值是否可以被更改
[[Value]]包含属性实际的值
要修改属性的默认特性,就必须使用Object.defineProperty()方法
let person = {}
Object.defineProperty(person, "name",{
writable:false,
value:"nicholas"
})
console.log(person.name)//nicholas
person.name="gsars"
console.log(person.name)//nicholas