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