这是构造函数:
function Foo() {
this.id = 0;
}
我正在" class"创建方法在这里:
Foo.id = function() {
return id form Product + 1; // pseudocode
}
Foo.id() // 1
Foo.id() // 2
好吧,我想在构造函数上调用方法id()而不创建Foo实例,其中id()方法访问公共成员id并将其设置为id + 1.此外,当我创建实例时,调用id方法创建它并设置id成员。首先是关闭我。任何帮助将不胜感激,并提供进一步阅读的链接。
我稍后会创建Foo的实例,这里是模板:
var myFoo = new Foo({
title: "titlevalue", // string
price: n // ni is integer
});
我希望每个实例都有id属性,这是在实例化时生成的,因为构造函数中有默认属性id。
答案 0 :(得分:2)
函数是一个对象。在你的功能上添加第二个属性。
Foo.currentId = 0;
Foo.id = function() {
return ++Foo.currentId;
};
如果你坚持让它成为“私人”,你可以在一个函数内创建一个函数:
Foo.id = (function() {
var id = 0;
return function() {
return ++id;
};
})();