对象、类与面向对象编程
对象
理解对象
可以将它视为散列表,拥有若干的 名值对结构 ,值可以是 数据 或者函数
创建
- javascript
let person = new Object();
- javascript
let person = {};
属性类型
数据属性【4 个描述对象特性的属性】
- [[Configurable]]:表示属性是否可以通过 delete 删除并重新定义,是否可以修改它的特性,以及是否可以修改访问器属性。默认情况下,所有被直接定义到对象的属性 这个特性都为true
- [[Enumberable]]:表示属性是否可以**(枚举)通过 for-in 循环返回**。默认情况下 true
- [[Writable]]:表示属性值是否可以被修改。 默认情况下,true 可以被修改的、
- [[Value]]:包含属性实际的值。读取与写入属性的位置。默认值是undefined
修改以上特性的方式 Object.defineProperty()方法
接受 3 个参数 添加的对象名称、要修改特新的属性名称、options(可以包含 :confiigurable、enumerable、writable、value)与上面提到的特性一一对应
若不可修改的对象属性被修改了 ,严格模式 报错,非严格模式 被忽略
- javascript
let person = { name: "qwer" }; Object.defineProperty(person, "name", { configurable: false });
访问器属性