Skip to content

Object 方法

来源:js/基础/3方法.html

速查导航


delete 操作符

  • 对象直接获取 prototype 是获取不到的,因为这相当于获取对象上一个叫 prototype 的属性
  • delObj.__proto__.b = 2 这样也可以找到原型
  • delete delObj.b 删除不了原型上的属性
  • delete Object.getPrototypeOf(delObj).b 直接跑去原型删可以
  • delete delObj 删除不了变量
js

Object.is

=== 类似,但有两个不同:+0 !== -0NaN === NaN

js

Object.assign

合并对象,合并时同名属性后者直接替换前者。

js

Object.create

创建一个纯对象(无原型链),不会继承 toString 等方法。

js

Object.keys / values / entries

keys() / values() / entries() 分别遍历键名、键值、键名+键值,相当于对象转数组方法,转化之后数组方法随便调用。

js

Object.fromEntries

fromEntriesentries 的逆操作,从 [键, 值] 对创建对象。

js

相关方法:

  • hasOwnProperty() — 判断是否是原型属性
  • Object.hasOwn() — 判断是否自身属性

Object.getOwnPropertyDescriptor

js

enumerable: false 的属性会被以下 4 个操作忽略:

  • for...in — 只遍历对象自身的和继承的可枚举属性
  • Object.keys() — 返回对象自身的所有可枚举属性的键名
  • JSON.stringify() — 只串行化对象自身的可枚举属性
  • Object.assign() — 忽略 enumerablefalse 的属性

Object.getOwnPropertyDescriptors

js

Object.setPrototypeOf / getPrototypeOf

针对对象原型的操作。

js