这两种JavaScript静态变量声明区别?

window.Tool = (function(){
    "use strict"
    class Test{
        static Value = "1";
    }
    Test.Value = "1";
}({}))

请问上面两个Value静态成员变量声明有什么区别。
我在Chrome上面跑都可以获取。但是在Node环境就不行。
用babel转es5也会报错。有些不明白这两种声明有什么区别。

阅读 2.3k
1 个回答

没本质区别。

class Test {
}
Test.Value = "1"; // 这是 ES6 静态属性的写法
class Test {
    static Value = "1"; // 这是 ES7 静态属性的写法;当然你也可以继续用 ES6 那种
}

ES7 的那种写法暂时还处于 stage-1 阶段,默认不支持, Babel 的话你需要引入这个插件:https://babeljs.io/docs/en/ba...

相关介绍可以看 MDN 有关静态共有字段的部分:https://developer.mozilla.org...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题