我想在 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 样式对象创建时如何向类添加静态成员?