这是构造函数:
function Foo() {
this.id = 0;
}
我在这里创建“类”方法:
Foo.id = function() {
return id form Product + 1; // pseudocode
}
Foo.id() // 1
Foo.id() // 2
好吧,我想在构造函数上调用方法 id() 而不创建 Foo 的实例,其中 id() 方法访问公共(public)成员 id 并将其设置为 id + 1。另外,当我创建实例时,调用 id 方法创建它并设置 id 成员。首先是对我来说关闭。任何帮助以及进一步阅读的链接将不胜感激。
稍后我将创建 Foo 的实例,这是模板:
var myFoo = new Foo({
title: "titlevalue", // string
price: n // ni is integer
});
我希望每个实例也有 id 属性,该属性是在实例化时生成的,因为构造函数中有默认属性 id。
最佳答案
函数是一个对象。在您的函数上添加第二个属性。
Foo.currentId = 0;
Foo.id = function() {
return ++Foo.currentId;
};
如果您坚持将其设置为“私有(private)”,您可以在函数内创建一个函数:
Foo.id = (function() {
var id = 0;
return function() {
return ++id;
};
})();
关于javascript - 类上的方法 - 静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19392243/