ES6 对象的新增方法

在这里插入图片描述

Object.is()

比较两个值是否相等

Object.is('val', 'val')// true
Object.is({}, {})// false

+0 === -0 //true
NaN === NaN // false

Object.is(+0, -0) // false
Object.is(NaN, NaN) // true
Object.assign()

用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)

const obj = { x: 11 };
const obj1 = { y: 21 };
const obj2 = { z: 31 };
Object.assign(obj,obj1,obj2); // {x:11, y:21, z:31}
注意
  • Object.assign()方法实行的是浅拷贝
  • 同名属性将会替换
  • Object.assign()可以用来处理数组,但是会把数组视为对象。会发生替换
  • Object.assign()处理函数时,将求值后再复制
Object.getOwnPropertyDescriptors()

返回指定对象所有自身属性(非继承属性)的描述对象。

const obj = {
  val:111
};
Object.getOwnPropertyDescriptors(obj);
// {
//	val:
//  	{
//      configurable: true,
//      enumerable: true,
//      value: 111,
//      writable: true
//    }
// }
Object.setPrototypeOf()

设置原型对象的方法

let proto = {};
let obj = { a: 11 };
Object.setPrototypeOf(obj, proto); //将`proto`对象设为`obj`对象的原型

proto.b = 22;
proto.c = 33;

obj.x // 11
obj.y // 22
obj.z // 33
Object.getPrototypeOf()

用于读取一个对象的原型对象

function Fun(){};
let fun  = new Fun();
Object.getPrototypeOf(fun) === Fun.prototype // true
Object.keys(),Object.values(),Object.entries()
  • Object.keys方法,返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。
  • Object.values方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值。
  • Object.entries()方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组。
let {keys, values, entries} = Object;
let obj = { x: 11, y: 21, z: 31 };

for (let key of keys(obj)) {
  console.log(key); // 'x', 'y', 'z'
}

for (let value of values(obj)) {
  console.log(value); // 11, 21, 31
}

for (let [key, value] of entries(obj)) {
  console.log([key, value]); // ['x', 11], ['y', 21], ['z', 31]
}
Object.fromEntries()

将一个键值对数组转为对象。

let arr = [ ['x','a'], ['y','b']]
Object.fromEntries(arr) // {x:'a', y:'b'}

参考文献

阮一峰老师的 ECMAScript 6 入门


点赞 评论 收藏 ~~ 今天的学习记录暂时到这... ~~ 点赞 评论 收藏
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shaoin_2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值