class 方法可以在 ES 6 或 7 中声明为引用吗?

Can class methods be declared as a reference in ES 6 or 7?

我正在尝试从 react-redux-universal-hot-example 掌握 this piece of code(我的上帝,看看我们走了多远!)。

总之..

他们为 class 声明了 2 个静态方法作为对 2 个函数参数的引用。

export default function connectData(fetchData, fetchDataDeferred) {
  return function wrapWithFetchData(WrappedComponent) {
    class ConnectData extends Component {

      static fetchData = fetchData;
      static fetchDataDeferred = fetchDataDeferred;

      render() {
        return <WrappedComponent {...this.props} />;
      }
    }

    return ConnectData;
  };
}

重点是.. 这有效...但是 ES6 或 ES7 是否支持它?你能实现一个 class 成员作为对你接收到的参数的引用吗?

为什么不呢?基本上他们 return 这个:

return {
  fetchData         : fetchData,
  fetchDataDeferred : fetchDataDeferred,
  render            : function()  {...},
  __proto__         : Component 
};

不完全是,但概念上已经足够接近了......

根据the grammar for a ClassElement, and fails when attempted on an ES6 REPL,它不是有效的 ES6:

const method = () => {};
class Example { static _method = method; }
//=> Unexpected token (2:31)

...但是是 proposed for ES7+,这大概是 babel 插件实现的功能。