在ES6中为对象新增了一些方法,下面为大家简单介绍一下这些方法
1.Object.is 判断两个值是否完全相等
console.log(Object.is(120, 120)); //相当与===
console.log(Object.is(NaN, NaN));//NaN比较特殊 输出结果为true
console.log(NaN === NaN); //但是两个NaN全等判断输出为false
通过上面代码的输出结果我们可以得知,Object.is这个方法在一般情况下相当于 === ,但是在对两个NaN进行判断的时候,它输出的结果却与 === 判断输出的结果不同
2.Object.assign 对象的合并 需要传递两个参数 第一个参数为被覆盖的对象 第二个参数为要覆盖的对象
const config1 = {
host: 'localhost',
port: 3306,
name: 'root',
pass: 'root',
test: 'test'
};
const config2 = {
host: 'www.4399.com',
port: 3307,
name: 'root1',
pass: 'root1',
test2: 'test2'
}
console.log(Object.assign(config1, config2));
通过观察以上代码在控制台中的输出结果可以发现使用该方法的返回结果是一个新的对象,该对象中的属性是由传入的两个对象共同决定的,如果两个对象中有相同的属性名,则第二个对象的属性会覆盖第一个对象的属性, 而两个对象中不重名的属性则都会给到返回的那个新的对象。
3.Object.setPrototypeof 和 Object.getPrototypeof
Object.setPrototypeof 的作用是设置原型对象 需要接受两个参数 第一个参数为要设置原型的对象,第二个参数为该对象的新原型
Object.getPrototypeof 的作用是返回指定对象内部的原型 只需要接受一个参数 该参数为某个对象
const person = {
name: 'Bob'
}
const cities = {
workPlace: ['北京', '上海', '深圳']
}
Object.setPrototypeOf(person, cities);
console.log(Object.getPrototypeOf(person));
console.log(person);
在上面的代码中通过setPrototypeOf将cities作为了person对象的新原型,通过getPrototyeOf获取person对象的原型,并在控制台中直接打印person,通过观察打印输出的结果可以发现,person的原型已经被修改为了cities.
以上就是关于ES6中对象新增方法的介绍