js object方法

Object.assign()

Object.assign()方法用于将可枚举属性的值从一个或多个源对象分配到目标对象,它将返回目标对象

let obj = {a: 111, b:222, c: 333};
let obj1 = {d: 444, e: 555};
Object.assign(obj, obj1)
// {a: 111, b: 222, c: 333, d: 444, e: 555}
如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖
复制代码

Object.create()

Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__
参数:新创建对象的原型对象
此方法可以用来实现类式继承

字面量和`new`关键字创建的对象是`Object`的实例,原型指向的是`Object.prototype`,继承内置对象`Object`
`Object.create`创建的对象的原型取决于传入的对象实例,如果传入`null`,新对象就是空对象,没有原型,不继承任何对象,否则新对象的原型指向指定对象,继承指定对象
复制代码

Object.defineProperty()

Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性
数据描述符存取描述符不能混合使用

Object.definePropertys

Object.definePropertys()方法可以在一个对象上直接定义新的属性或修改现有属性,与上面的区别是可以修改多个,上面一次仅能修改一个

Object.entries()

Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组

const object1 = {
  a: 'somestring',
  b: 42
};

for (const [key, value] of Object.entries(object1)) {
  console.log(`${key}: ${value}`);
}

复制代码

Object.fromEntries()

Object.fromEntries()方法吧键值对列表转换为一个对象, 执行与Object.entries()互逆的操作

const entries = new Map([
  ['foo', 'bar'],
  ['baz', 42]
]);

const obj = Object.fromEntries(entries);
console.log(obj);
// { foo: "bar", baz: 42 }
复制代码

Object.hasOwnProperty()

Object.hasOwnProperty()方法返回一个布尔值,指示对象自身的键中是否有指定的键;
in操作符不同的是,改方法会忽略从原型链继承到的属性

let obj = {name: 11};
obj.hasOwnProperty('name');
// true
复制代码

Object.is()

Object.is()方法判断两个值是否为同一个值

Object.isExtensible()

Object.isExtensible()方法判断一个对象是否是可扩展的,返回boolean

Object.isFrozen()

Object.isFrozen()方法判断一个对象是否被冻结,返回boolean

Object.prototype.isPrototypeOf()

Object.prototype.isPrototypeOf()方法用于测试一个对象是否存在于另一个对象的原型链上

Object.keys()

Object.values()

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享