js基础6 — 数组对象

    console.log('1.Object.assign()方法的作用是浅拷贝一个对象,合并对象,合并具有相同属性的对象');

    var obj = {
        a:1,
        name: {
            'ming': 'fan',
        }
    };
    var copy = Object.assign({},obj);

    obj.name.ming = 'yang';

    console.log(obj.name.ming);
    console.log(copy.name.ming);

      // 关于深拷贝,可以使用 JSON.parse(JSON.stringify(obj1)); 缺点:无法复制函数,原型链没了。
      

    console.log('2.Object.create()方法的作用是创建一个新对象,并且可以继承父类函数的原型对象和属性');

    var parent = {
        getName: function() {
            return this.name;
        }
    };
    var child = Object.create(parent, {
         name: {value: 'yang'}
    });

    console.log(child);

    console.log('3.Object.entries()方法返回一个数组,其元素是与直接在object上找到的可枚举属性键值对相对应的数组。属性的顺序与通过手动循环对象的属性值所给出的顺序相同');

    const anObj = { 100: 'a', 2: 'b', 7: 'c' };
    console.log(Object.entries(anObj)); // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]

    Object.entries(obj).forEach(([key, value]) => {
        console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
    });


    console.log('4.Object.freeze()方法的作用冻结一个数组或者对象,被冻结之后就不能修改了');

    console.log('5.Object.is()方法的作用判断两个值是否相同');

    console.log(Object.is([],[]));   //false
    console.log(Object.is(undefined,undefined));   //ture

    console.log(Object.keys({'a':1,'b':'string'}));  // a,b 输出key值

 

posted @ 2019-03-24 18:24  PopeyeSailorMan  阅读(160)  评论(0编辑  收藏  举报