JS& ES6:从类中访问静态字段

时间:2015-12-11 09:28:49

标签: javascript reactjs ecmascript-next

在ES6中,给出以下示例:

export default class MyStyle extends Stylesheet {
   static Color = {
      mainDark: '#000'
   }
   static Comp = {
      ...
      color: Color.mainDark
   }
}

如何访问Color.mainDark(静态字段)?

2 个答案:

答案 0 :(得分:5)

我认为你的意思是ES.next(可能使用babel stage-0),因为klaemo说你可以按照你的预期访问它,但是如果我记得在使用Babel并立即导出类时有一些问题,那么导出之后定义类如果你遇到问题:

class MyStyle extends Stylesheet {
   static Color = {
      mainDark: '#000'
   }

  someMethod() {
    console.log(MyStyle.Color.mainDark);
  }
}

export default MyStyle;

您可以在an answer Marian made on a similar question中阅读有关Babel问题的更多信息,该问题可以在Babel 6.2.1中修复。

答案 1 :(得分:0)

'use strict';

 class User {
   constructor(firstName, lastName) {
   this.firstName = firstName;
   this.lastName = lastName;
 }

 static createGuest() {
    return new User("guest", "site");
   }
 };

 let user = User.createGuest();

  alert( user.firstName ); // guest

  alert( User.createGuest ); // createGuest ... (function)

和const:

'use strict';

class Menu {
 static get elemClass() {
   return "menu"
 }
}

alert( Menu.elemClass ); // menu

使用调用上下文对象---这个

ES6 - Call static method within a class