EcmaScript 5 JavaScript のクラスに静的関数を追加したいと考えています。私のクラス定義は次のようになります。
var Account = {};
Object.defineProperty(Account, 'id', {
value : null
});
そして、次のような新しいインスタンスを作成します。
var theAccount = Object.create(Account);
theAccount.id = 123456;
Account
次に、クラスに静的関数を追加します。コンストラクター関数と次のようなプロパティAccount
を使用してクラスを作成した場合:prototype
var Account = function () {
this.id = null;
};
...私はただ行うことができます:
Account.instances = {};
Account.createInstance = function () {
var account = new Account();
account.id = uuid.v4();
Account.instances[account.id] = account;
return account;
};
しかし、メンバーを追加するためにプロパティでObject.defineProperty
はなく使用しているため、呼び出し時にインスタンス化されるため、インスタンスのプロパティになります。prototype
Account.instances
Account.createInstance
Object.create
EcmaScript 5 スタイルのオブジェクト作成を使用する場合、クラスに静的メンバーを追加するにはどうすればよいですか?