ES6中新增的方法

                                            ES6新增方法

前言:在es6中,为了是使某些任务更易完成,在全局Object对象上引入了一些新方法。

1.Object.is()

该方法是用来弥补全等运算符(===)的不确定性运算,该方法接受两个参数,如果两个类型相同且具有相同的值,则返回true。

console.log(+0 == -0); // true
console.log(+0 === -0); // true
console.log(Object.is(+0, -0)); // false



console.log(NaN == NaN);  // false
console.log(NaN === NaN);  // false
console.log(Object.is(NaN, NaN));  // true




console.log(5 == "5"); // true
console.log(5 === "5"); // false
console.log(Object.is(5, "5"); // false

Object.is()和 ===运算符大部分情况下相同,唯一的区别在于 +0 , -0 被认为不相等,NaN和NaN认为等价。

2.Object.assign()

该方法接受一个接收对象和任意数量的源对象,返回接收对象。

var receiver = {};


Object.assign(receiver, 
  {
      name: "zhou",
      age: 24
  }
);


console.log(receive.name) // zhou
console,log(receiver,age) // 24

3.Object.setPrototypeOf()

该方法可以改变任意指定对象的原型,它接受两个参数:被改变原型的对象和替代第一个参数原型的对象。

let person = {
           getGreeting() {
                   return "hello";
                 }
        }


let dog =  {
           getGreeting() {
                   return "Woof";
                 }
        }


let friend = Object.create(person);   // {}  返回的是一个空对象,这个对象以person为原型
console.log(friend.getGreeting()); // "hello"
consloe.log(Object.getPrototypeOf(friend) === person) // true



//将原型设置为person

Object.setPrototypeOf(friend, dog);
console.log(friend.getGreeting()); // "Woof"
consloe.log(Object.getPrototypeOf(friend) === person) // false
consloe.log(Object.getPrototypeOf(friend) === dog) // true

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值