美文网首页
Object方法

Object方法

作者: 李霖弢 | 来源:发表于2020-02-24 14:32 被阅读0次

    Object.keys(obj)

    返回一个所有元素为字符串的数组,其元素来自于从给定的obj可枚举的属性。这些属性的顺序与手动遍历该对象属性时的一致。

    Object.getOwnPropertyNames(obj)

    返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。

    Object.getOwnPropertySymbols(obj)

    返回一个给定对象自身的所有 Symbol 属性的数组。

    Object.getOwnPropertyDescriptor(obj)

    返回指定对象上一个自有属性对应的属性描述符。

    const descriptor1 = Object.getOwnPropertyDescriptor({
      property1: 42
    }, 'property1');
    
    console.log(descriptor1.configurable);
    // expected output: true
    
    console.log(descriptor1.value);
    // expected output: 42
    

    Object.create(proto[, propertiesObject])

    • 返回一个新对象,使用现有的对象来提供新创建的对象的proto。
    • proto : 必须。表示新建对象的原型对象,该参数可以是null对象, 函数的prototype (创建空的对象时需传null , 否则会抛出TypeError异常)。
    • propertiesObject : 可选。 添加到新建对象自身的属性描述符及相应的属性名称。这些属性对应Object.defineProperties()的第二个参数。
    注意

    不同于var obj = new Object(...)var obj = {...}直接创建的对象,通过propertiesObject添加的属性,其描述符默认均为false

    因此

    // bar is a property which isn't enumerable
    var myObj = Object.create({}, {
      bar: {
        value: 2
      } 
    });
    myObj.foo = 1;
    console.log(Object.keys(myObj)); // console: ['foo']
    

    Object.assign(target, ...sources)

    • 将所有可枚举属性值从一个或多个源对象复制到目标对象,并返回目标对象
    • 该方法使用源对象的getter和目标对象的setter
    • 浅拷贝
      假如源值是一个对象的引用,它仅仅会复制其引用值。
    Object.assign({}, { age: 1 },{ name : "ming" });
    
    var t1 = {};
    var output = Object.assign(t1, { age: 1 });
    console.log(output === t1);//true
    

    相关文章

      网友评论

          本文标题:Object方法

          本文链接:https://www.haomeiwen.com/subject/yuhvqhtx.html