ES6类的Javascript对象

时间:2019-04-19 09:57:13

标签: javascript ecmascript-6

我有一个用对象表示法的普通javascript编写的javascript插件

示例

start = {
  config: {
    a : 1
  },
  core: {
    engine_part1:function() {

    },
    engine_part2: function() {
    } 
  }
  init: function(){

  }
}

在此对象表示法中,可以在core内部声明函数,即engine_part1()和engine_part2()

是否有变通方法可以使用Javascript类实现相同的目标?

在Javascript类中,该类具有数据和函数,但是我无法用对象表示法在诸如core之类的对象内编写函数。

预先感谢

1 个答案:

答案 0 :(得分:1)

只需使用class语句声明您的类,然后将其属性添加到constructor并将其(staticmethods添加到类的正文中。

class Start {
  constructor() {
    this.config = {
      a: 1
    };
    
    this.core = {
      engine_part1: () => (console.log('engine_part1')),
      engine_part2: () => (console.log('engine_part2')),
    }
  }
  
  init() {
    console.log('init');
  }
}

const start = new Start;

console.log(start.config);

start.core.engine_part1();
start.init();