Jak zrobić klasę w JavaScript?

Istnieje wiele sposobów na zrobienie tego samego w JavaScript. Wybrałem jednak pewne sposoby i niektóre sposoby, których szczerze nie rozumiem. Czy ktoś mógłby mi pomóc wyjaśnić niektóre rzeczy? (Po raz pierwszy nauczyłem się OOP w PHP).

Tak więc klasę można zrobić w ten sposób:

var object = new class(constructparams) {
    var private_members; // Can be accessed from within the code inside this definition only.
    this.public_members; // Can be accessed from everywhere.

    var private_functions = function() {}
    this.public_functions = function() {}
}

object.prototype.semi_public_members = function() {
    // Will be public, but can only access public members and methods.
    // E. g. private_members; is not available here.
}

Czy to do tej pory wszystko poprawne?

Następnie ktoś lubi samo-uruchamiające się podejście do funkcji anonimowych w celu utworzenia przestrzeni nazw. Jaki jest sens tego, gdy masz taki sposób, który robi to samo, zapewnia przestrzeń nazw?

I wreszcie masz literalną notację obiektu, której nie rozumiem.

var object = { // Something strange in here }

Co tam się dzieje Czy to JSON? Jak się go używa, jak mogę go używać. Jakie są zalety korzystania z tej metody zamiast używania metody, którą opisałem? Dlaczego miałbyś prototypować zamiast poprawnie wykonywać klasę za pierwszym razem?

questionAnswers(4)

yourAnswerToTheQuestion