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

 


版权声明:本文为qq_40077472原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。