相关疑难解决方法(0)

对象文字/初始化器中的自引用

有没有办法在JavaScript中使用以下内容?

var foo = {
    a: 5,
    b: 6,
    c: this.a + this.b  // Doesn't work
};
Run Code Online (Sandbox Code Playgroud)

在当前形式中,此代码显然会抛出引用错误,因为this没有引用foo.但是,有什么办法对早些时候宣布的其他属性在对象文本的属性值依赖?

javascript object-literal

660
推荐指数
14
解决办法
12万
查看次数

从常规ES6类方法中调用静态方法

调用静态方法的标准方法是什么?我可以考虑使用constructor或使用类本身的名称,我不喜欢后者,因为它没有必要.前者是推荐的方式,还是还有其他的东西?

这是一个(人为的)例子:

class SomeObject {
  constructor(n){
    this.n = n;
  }

  static print(n){
    console.log(n);
  }

  printN(){
    this.constructor.print(this.n);
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript static class ecmascript-6 es6-class

161
推荐指数
3
解决办法
10万
查看次数

ES6 - 在类中调用静态方法

我有这个类对静态方法进行内部调用:

export class GeneralHelper extends BaseHelper{
     static is(env){
          return config.get('env:name') === env;
     }

     static isProd(){
         return GeneralHelper.is('prod');
     }
 }
Run Code Online (Sandbox Code Playgroud)

我可以使用任何关键字来替换下面一行中的类名:

GeneralHelper.is('prod');
Run Code Online (Sandbox Code Playgroud)

在PHP中也有self,static等ES6是否提供类似这些东西吗?

TY.

javascript oop ecmascript-6

70
推荐指数
3
解决办法
4万
查看次数

如何使用React和Webpack设置Babel 6 stage 0

我从文档中了解到的

我看到Babel 6现在有三个预设:es2015,react和stage-x.我读到我可以这样设置.babelrc:

{
  "presets": ["es2015", "react", "stage-0"]
}
Run Code Online (Sandbox Code Playgroud)

或直接在package.JSON中如下:

{
  ...,
  "version": x.x.x,
  "babel": {
    "presets": ["es2015", "react", "stage-0"]
  },
  ...,
}
Run Code Online (Sandbox Code Playgroud)

我可以进一步使用带有webpack的babel-loader,如下所示:

loader: 'babel?presets[]=es2015'
Run Code Online (Sandbox Code Playgroud)


我的问题

所以为了编译所有好的和干净的我正在添加babel-loader,刚刚更新为使用Babel6,到这样的webpack配置:

module.exports = function(options) {
  var jsLoaders = ['babel?presets[]=es2015'];
  [...]
    loaders: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loaders: jsLoaders
      },
      {
        test: /\.jsx$/,
        exclude: /node_modules/,
        loaders: options.production ? jsLoaders : ['react-hot'].concat(jsLoaders)
      },
      [...]
Run Code Online (Sandbox Code Playgroud)


现在,当我在没有 .babelrc设置root或package.JSONpresets 选项的情况下进行编译时,即仅使用webpack配置中的babel-loader es2015预设集时,我的React组件类中出现了关于静态propTypes的意外标记错误:

ERROR in ./app/components/form/index.jsx
Module build failed: …
Run Code Online (Sandbox Code Playgroud)

config ecmascript-6 reactjs webpack babeljs

51
推荐指数
2
解决办法
3万
查看次数