Ich möchte verfolgen, wie viele Objekte mit meiner Konstruktorfunktion erstellt wurden. Zur Zeit bekomme ich die Nummer, indem ich eine humanCount
Variable im globalen Namensraum platziere. Aber es sieht nicht gut für mich aus. Mein Code ist:Wie erreiche ich die Klassenvariablen-Funktionalität in JavaScript?
var humanCount = 0;
function Human(name, age){
this.name = name;
this.age = age;
humanCount++;
};
var john = new Human("JOHN", 35);
console.log(humanCount); // prints 1
var jane = new Human("JANE", 28);
console.log(humanCount); // prints 2
Jeder andere Weg, um die Funktionalität zu erreichen?
Darf ich fragen, warum Sie diese Statistik wissen möchten? –
Sie müssen den globalen Bereich nicht verwenden, wenn Sie nicht möchten. Sie können so viele "Zwischenbereiche" erstellen, wie Sie möchten. Sie können diesen Wert auch zu einer Eigenschaft von "Human" machen. Es gibt viele Möglichkeiten. –
Es geht nicht um Public/Private oder Scoping-Problem. Es geht darum, eine Variable zu erstellen, die verfolgt, wie viele Instanzen erstellt werden. @felixKling –