似乎可以在构造函数中嵌套一个类,然后可以从类中的任何地方实例化,这是官方的吗?
[编辑] 例如,
class C {
constructor() {
class D {
constructor() { }
}
}
method() {
var a = new D(); // works fine
}
}
//var a = new D(); // fails in outer scope
traceur 生成的 JS https://google.github.io/traceur-compiler/demo/repl.html
$traceurRuntime.ModuleStore.getAnonymousModule(function() {
"use strict";
var C = function C() {
var D = function D() {};
($traceurRuntime.createClass)(D, {}, {});
};
($traceurRuntime.createClass)(C, {method: function() {
var a = new D();
}}, {});
return {};
});
//# sourceURL=traceured.js
原文由 user5321531 发布,翻译遵循 CC BY-SA 4.0 许可协议
不,在 ES6 中没有嵌套的类作用域,如果你是这个意思的话,无论如何在类语法中也没有私有成员这样的东西。
当然你可以把第二个类作为另一个类的静态属性,像这样:
或者你使用一个额外的范围:
(traceur 似乎有一个错误,因为它使用提升的
var
作为类声明而不是块作用域)使用 类字段语法,也可以编写单个表达式或声明: