を持つObjects
を初期化するコンストラクタが必要です。私はこのようなコードを書く:静的プライベートフィールドJavascript
Obj.prototype.idCounter = 0;
Obj = function() {
this.name = "Obj_" + Obj.prototype.idCounter;
Obj.prototype.idCounter++;
}
var o1 = new Obj();
var o2 = new Obj();
alert(o1.name); // Obj_0
alert(o2.name); // Obj_1
しかし、Obj.prototype.idCounter
は非公開です。私はプライベート変数を作成する方法を知っていますが、プライベートな静的変数を作る方法はわかりません。あなたは何ができるか
さて、実際にはjavascriptは、古典的なオブジェクト指向言語にマップすることはできません。プロトタイプ指向です。だから短い答え:申し訳ありませんが、あなたはできません。 – axelduch
Symbol機能を導入することで、偶発的なプロパティ衝突の脅威に対してより堅牢なコードを作成することが可能になりますが、 'Object.getOwnPropertyNames()'と ' Object.getOwnPropertySymbols() 'いくつかの目的のために、クロージャを使用することができます。 – Pointy
こんにちは、ちょうどここで学ぼうとしています。クロージャはプライベート変数をどのように作成するのですか?プライベート変数を静的にすることはjsでは不可能だと言っていますか? – Observer