Я хочу добавить статическую функцию в класс в 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?