Skip to content

对象

详细介绍对象的学习方法


构造器

对象控制

es5 暴露的一系列方法用于控制对象属性的增删改查。 核心方法如下

特性默认行为preventExtensionssealfreeze
添加属性
删除属性
修改属性

属性

对象由一系列属性组成,属性值可以是基础类型也可以是引用类型。 ECMAScript 规定存在两种类型的属性

  • 数据属性 用于存储数据,数据属性包含四个值
    • value 属性值
    • enumerable 是否可枚举
    • configurable 是否可配置
    • writable 是否可写
  • 访问器属性
    • get 设置读取器
    • set 设置设置器
    • enumerable 是否可枚举
    • configurable 是否可配置

创建方法

  • 对象字面量形式 {}
  • 采用 new 方法
  • Object.create 自定义原型对象

方法清单

核心属性

类属性

对象内部隐藏有类属性信息,当调用 toString 方法时会返回 '[object xxx]' 的格式。 可以拿到此属性值。

Object.create

  • 入参
    • proto 实例化对象需要继承的原型
    • propertiesObject 属性描述对象
  • return
    • 返回实例化的新对象

典型使用场景

修改封锁

该示例取自 js 权威指南第六版例 6.1

假设一个库暴露了一个对象,第三方需要对象进行额外操作,为了避免操作直接影响对象本身。 采用 inherit 函数继承原始对象,此时第三方修改只会影响继承对象避免直接对原始对象的修改而造成的污染。

Object.keys

用于获取对象所有自有属性的键名。