Object常用方法总结

  • Object.defineProperty(obj, prop, descriptor)用于定义对象的数据属性(对象属性氛围数据属性和访问器属性)
    • obj:必需。目标对象 
    • prop:必需。需定义或修改的属性的名字
    • descriptor:必需。目标属性所拥有的特性
      • value:就是属性的值。
      • writable:决定属性能否被赋值。
      • enumerable:决定 for in 能否枚举该属性。
      • configurable:决定该属性能否被删除或者改变特征值。
        Object.defineProperty(o, "b", {value: 2, writable: false, enumerable: false, configurable: true}); 
  • Object.getOwnPropertyDescriptor(obj, prop)用于查看对象的数据属性

    • obj: 需要查找的目标对象
    • prop: 目标对象内属性名称
  • Object.assign(target, source) 用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

    const target = { a: 1, b: 2 };
    const source = { b: 4, c: 5 };
    const returnedTarget = Object.assign(target, source);
    console.log(target);
    // expected output: Object { a: 1, b: 4, c: 5 }
    console.log(returnedTarget);
    // expected output: Object { a: 1, b: 4, c: 5 }
  • Object.getOwnPropertyNames(obj) 返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性)的键名。
    let cc = Symbol()
    var obj = {aa: 11, bb: 22};
    obj[cc] = 33;
    Object.getOwnPropertyNames(obj);
    // ["aa", "bb"]
  • Object.getOwnPropertySymbols(obj)返回一个数组,包含对象自身的所有Symbol属性的键名。
    let ee = Symbol();
    let ff = Symbol();
    var obj = {aa: 11, bb: 22};
    obj[ee] = 33;
    obj[ff] = 44;
    Object.getOwnPropertySymbols(obj);
    // [Symbol(), Symbol()]
  • Reflect.ownKeys(obj)返回一个数组,包含对象自身的所有键名,不管键名为Symbol或字符串,也不管是否可枚举。
    let ee = Symbol();
    let ff = Symbol();
    var obj = {aa: 11, bb: 22};
    obj[ee] = 33;
    obj[ff] = 44;
    Reflect.ownKeys(obj)
    // ["aa", "bb", Symbol(), Symbol()]
  • Object.keys(obj);  Object.values(obj); Object.entries(obj); 返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)的键名,值,键值对。
    var obj1 = {cc: 1, dd: 2, ff: 3};
    Object.values(obj1);
    // [1, 2, 3]
    
    Object.keys(obj1);
    // ["cc", "dd", "ff"]
    
    Object.entries(obj1);
    // [["cc", 1],["dd", 2],["ff", 3]]

     

posted @ 2019-03-19 16:10  大豆F4  阅读(198)  评论(0编辑  收藏  举报