一、语法形式上变化
当对象的属性名和值的变量名或常量名一样时,可以省略 :变量名/常量名
const name='asd'
let pwd=123
const obj={
name,
pwd,
say:function(){
console.log('say');
},
say1(){
console.log('say1');
},
// 箭头函数不能省略
say2:()=>{console.log('say2');}
}
console.log(obj);
obj.say2()
二、api—应用程序接口(方法 )
Object.assign 、Object.creat 、Object.is 、Object.values 、Object.keys
Object.defineProperty
1、Object.create()
以一个现有对象作为原型,创建一个新对象
const p=Object.create(obj) // p.__proto__=obj
console.log(p.__proto__);
2、Object.is()
确定两个值是否为相同值
console.log(NaN===NaN); // false
console.log(Object.is(NaN,NaN)); // true
console.log(Object.is({a:1},{a:1})); // false 两个对象地址不同
3、Object.toString()
返回一个代表该对象的 字符串
console.log( obj.pwd.toString() )
数组定义的 toString() :拼接数组元素
const arr=[1,2,3,4]
console.log(arr.toString()); // 1,2,3,4
console.log(Object.prototype.toString.call(arr)); //[object Array]
4、Object.hasOwnProperty / Object.hasOwn
判断某个属性是否是自身
obj.a=10
console.log(Object.hasOwnProperty('name')); // true
console.log(Object.hasOwnProperty('a')); // false