私はjavascriptで静的メンバーをエミュレートしようとしています。
このコードを検討してください:
// option A for static members:
// constructor...
function Person(name) {
this.firstName=name;
}
Person.count=0; // like a static member...
var p=new Person("Dan");
Person.count++;
alert(Person.count); // 1;
そして今これ:
// option B for static members:
// constructor..
function Person(name) {
this.firstName=name;
Person.prototype.count++;
}
Person.prototype.count=0; // like a static member...
var p=new Person("Dan");
alert(Person.prototype.count); // 1;
// ...
したがって、これら2つの主な違いは、2番目の例では、(プロトタイプのデクレレーションのために)コンストラクターから静的メンバーを参照できるのに対し、最初の例では参照できないということです。