ES 6中定义对象属性

  • A+
所属分类:ES 6 JavaScript Web

ES6 允许在对象中使用表达式定义属性名,这时表达式放置在方括号内。

一.ES 6中定义对象属性

1.基本定义

  • ①在ES6中定义对象属性有两种方式。
    // 方法一
    obj.foo = true;
    
    // 方法二
    obj['a' + 'bc'] = 123;
    
  • ②在es5的对象中定义属性名
    var obj = {
      foo: true,
      abc: 123
    };
    
  • ③在es6对象中使用表达式定义对象属性名
    let propKey = 'foo';
    
    let obj = {
      [propKey]: true,
      ['a' + 'bc']: 123
    };
    
  • ④在es6对象可以使用表达式定义方法名
    let obj = {
      ['h' + 'ello']() {
        return 'hi';
      }
    };
    
    obj.hello() // hi
    
  • ⑤属性名表达式如果是一个对象,默认情况下会自动将对象转为字符串[object Object],对象key值之间会相互覆盖
    const keyA = {a: 1};
    const keyB = {b: 2};
    
    const myObject = {
      [keyA]: 'valueA',
      [keyB]: 'valueB'
    };
    
    myObject // Object {[object Object]: "valueB"}
    
zhangfeng

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: