Object详解

标准形式

// 字面量
{ [nameValuePair1, [nameValuePair2 ....]]}
// 构造函数
new Object([value])

原型

Object.prototype

  Object.prototype.__proto__  // 对象的原始集成对象
  Object.prototype.constructor // 对象的构造函数

标准方法

  • Object.assign()

前拷贝

  • Object.create()

使用一个原始对象,创建一个新对象

  • Object.defineProperties(obj, props)

给元素定义一个新属性,或者修改一个元素的属性

   const obj = {}
  Object.defineProperties(obj, {
      property1: {
        value: 42,
        writeable: true, // 表示关联操作符可以改变属性的值
        configurable: true // 属性可以修改,也可以删除属性
        enumerable: true // 属性是否可以被枚举出来    
        get () {} // 设置get函数
        set () {} // 设置set函数
      }
  })
  • Object.defineProperty(obj, prop, descriptor)

同上,只是一次性只能定义一个属性

  • Object.entries()

返回一个对象可以枚举的[key, value] pairs

  • Object.freeze()

冻结一个object, 被冻结的对象不能被修改

  • Object.isFrozen()

检查是否被冻结

  • Object.seal()

封存一个对象

  • Object.isSealed()

检查对象是否封存

  • Object.fromEntries()

key-value pairs 转换为一个object

 const entries = new Map([
  ["key1", "val1"]
 ])
const obj = Object.fromEntries(entries)
  • Object.getOwnPropertyDescriptor()

获取一个对象属性的描述信息

  • Object.getOwnPropertyNames()

返回一个对象所有的属性名字,包括不可以枚举的属性

  • Object.getOwnPropertySymbols()

返回Symbol 属性

  • Object.getPrototypeOf()

获取一个对象的创造原型

  • Object.setPrototypeOf()

设置一个对象的原始类型

  • Object.is

判断两个值是否相同

  • Object.isExtensible()

判断一个函数是否可以扩展

  • Object.preventExtensions()

不准许对象扩展

  • Object.keys()

返回对象可以枚举的属性值

  • Object.prototype.hasOwnProperty()

判断一个对象是否有这个属性,不包括继承的属性

  • Object.prototype.isPrototypeOf()

判断一个对象是否在另外一个对象的原型链上

  • Object.prototype.propertyIsEnumerable()

判断一个属性是否可以枚举

  • Object.prototype.tolocalestring()

tostring

  • Object.prototype.valueOf()

返回一个对象的原始值

  • Object.values()

返回对象可以枚举的值

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容