ES6语法之对象的扩展 (常用)

版权声明:一只会飞的狼 https://blog.csdn.net/sinat_40697723/article/details/87928808

一.  属性的简洁表示法

1. ES6 允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。即键和值同名时,只需要写一个就可以。

const foo = 'bar';
const baz = {foo};
baz // {foo: "bar"}

// 等同于
const baz = {foo: foo};

方法也可以简写:

const o = {
  method() {
    return "Hello!";
  }
};

// 等同于

const o = {
  method: function() {
    return "Hello!";
  }
};

二.  属性的可枚举性和遍历

可枚举性:

1.  对象的每个属性都有一个描述对象(Descriptor),用来控制该属性的行为。Object.getOwnPropertyDescriptor方法可以获取该属性的描述对象。

let obj = { foo: 123 };
Object.getOwnPropertyDescriptor(obj, 'foo')
//  {
//    value: 123,
//    writable: true,
//    enumerable: true,
//    configurable: true
//  }

描述对象的enumerable属性,称为“可枚举性”。

2. 实际上,引入“可枚举”(enumerable)这个概念的最初目的,就是让某些属性可以规避掉for...in操作,不然所有内部属性和方法都会被遍历到。比如,对象原型的toString方法,以及数组的length属性,就通过“可枚举性”,从而避免被for...in遍历到。所以,尽量不要用for...in循环,而用Object.keys()代替。

属性的遍历:

                                           

 

猜你喜欢

转载自blog.csdn.net/sinat_40697723/article/details/87928808
今日推荐