ES6—对象变化

一、语法形式上变化

当对象的属性名和值的变量名或常量名一样时,可以省略 :变量名/常量名

     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

你可能感兴趣的:(es6,前端,ecmascript)