10
コンストラクタ内の変数と外部の変数の宣言には違いがありますか?
関数の場合、 'this'は別の方法でバインドされていますが、変数については違いがあるかどうかはわかりません。 @ merianosニコスのコメントでES7クラス:コンストラクタ外のプロパティの宣言
class Widget {
constructor(constructorName) {
this.constructorName = constructorName;
}
nonConstructorName = "nonConstructorName1";
}
var myWidget = new Widget("myConstructorName1");
console.log(myWidget.constructorName); // "myConstructorName1"
console.log(myWidget.nonConstructorName); // "nonConstructorName1"
myWidget.constructorName = "myConstructorName2";
myWidget.nonConstructorName = "nonConstructorName2";
console.log(myWidget.constructorName); // "myConstructorName2"
console.log(myWidget.nonConstructorName); // "nonConstructorName2"
console.log(myWidget.prototype.constructorName); // "undefined"
console.log(myWidget.prototype.nonConstructorName); // "undefined"
console.log(myWidget.__proto__.constructorName); // "undefined"
console.log(myWidget.__proto__.nonConstructorName); // "undefined"
var myNewWidget = new Widget("myConstructorName3");
console.log(myNewWidget.nonConstructorName); // "nonConstructorName1"
**は、この私のシナリオを参照している?** 「(メソッド以外)のプロトタイプ・データ・プロパティクラスのプロパティ、またはインスタンスのプロパティのいずれかを定義する直接的な宣言的な方法は、(意図的に)がありません。」 http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes –
クラス定義内にプロパティを定義する方法があるかどうかはわかりません。 これに基づいて:https://babeljs.io/docs/learn-es2015/#classesここであなたのES6コードを試してみると、 'constructor'メソッドの外にプロパティ定義はありません:https:// babeljs。 io/repl/'constructor'メソッドの外でプロパティのdefnititionに対してES6トランスペラレータがエラーを生成することがわかります。 –
あなたは、いくつかの良い答えがあるhttp://goo.gl/qzau3oこの質問を読むことは多分それはクラスの建設を外にいくつかのプライベートなプロパティをサイト外にしたい場合。 –