浅谈对象的两个方法:Object.keys() ,Object.assign();

1 : Object.keys(obj)

返回给定对象的所有可枚举属性的字符串数组

例子1:

var arr = [1, 2, 6, 20, 1];
console.log(Object.keys(arr), "arr")//["0", "1", "2", "3", "4"] "arr"

返回的数组元素的下标集合;

例子2:

var obj = {
        "name": 'lily',
        "age": '18',
        "work": 'student'
    };
    console.log(Object.keys(obj)); // ["name", "age", "work"]

返回对象的属性名,即键名;

2:Object.assign() 

用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象(注意为浅拷贝)

const object1 = {
        a: 1,
        b: 2,
        c: 3
    };
const object2 = Object.assign({
        c: 4,
        d: 5
    }, object1);

console.log(object2, "-", object1); //{c: 3, d: 5, a: 1, b: 2} - {a: 1, b: 2, c: 3}

源对象跟目标对象有相同的属性时,以源对象为准;

源对象越越靠后,权重级越大,越以谁为准,object3在最后,所以属性c的值,以object3为准,为9;

例如:

const object1 = {
        a: 1,
        b: 2,
        c: 3
    };
    const object3 = {
        c: 9
    };
    const object2 = Object.assign({
        c: 4,
        d: 5
    }, object1, object3);

    console.log(object2); //{c: 9, d: 5, a: 1, b: 2}

  

原文地址:https://www.cnblogs.com/liliy-w/p/9758779.html