对象扩展
ES6 新增了一些Object对象的方法
1、Object.is比较两个值是否严格相等,与『===』行为基本一致(+0 与 NaN);
2、Object.assign 对象的合并,将源对象的所有可枚举属性,复制到目标对象;
3、__proto__、setPrototypeOf、 setPrototypeOf 可以直接设置对象的原型;
代码案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>对象方法扩展</title>
</head>
<body>
<script>
//1. Object.is 判断两个值是否完全相等
console.log(Object.is(120, 120));// ===
console.log(Object.is(NaN, NaN));// ===
console.log(NaN === NaN);// ===
//2. Object.assign 对象的合并
const config1 = {
host: 'localhost',
port: 3306,
name: 'root',
pass: 'root',
test: 'test'
};
const config2 = {
host: 'http://www.what21.com',
port: 33060,
name: 'what21.com',
pass: '1314521',
test2: 'test2'
}
console.log(Object.assign(config1, config2));
//3. Object.setPrototypeOf 设置原型对象 Object.getPrototypeof
const school2 = {
name: '小奋斗'
}
const cities = {
xiaoqu: ['北京','上海','深圳']
}
Object.setPrototypeOf(school2, cities);
console.log(Object.getPrototypeOf(school2));
console.log(school2);
</script>
</body>
</html>