类的方法 - 静态成员

时间:2013-10-15 22:34:06

标签: javascript oop

这是构造函数:

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。

1 个答案:

答案 0 :(得分:2)

函数是一个对象。在你的功能上添加第二个属性。

Foo.currentId = 0;

Foo.id = function() {
    return ++Foo.currentId;
};

如果你坚持让它成为“私人”,你可以在一个函数内创建一个函数:

Foo.id = (function() {
    var id = 0;

    return function() {
        return ++id;
    };
})();