11
votes

Quelle est la différence entre la chose de Var et la fonction de fonction () dans JavaScript?

Je me demandais simplement de la différence entre la déclaration suivante d'objets JavaScript. Plus précisément, la différence entre chose objet littéral et chose1 objet de la classe de truc.

code: xxx


0 commentaires

5 Réponses :


0
votes

Avec la première méthode, vous déclarez un seul objet. Avec la seconde, vous déclarez une classe à partir de laquelle vous pouvez instancier (c'est-à-dire créer) de nombreuses copies différentes.


0 commentaires

1
votes

La différence est que l'objet Thing1 CODE> est associé à la classe code> Thing1 CODE>, et héritera (pas littéralement) le thrup1 code> prototype. Par exemple, vous pouvez écrire ultérieurement P>

thing.prototype.initAndSend = function() { this.init(); this.send(); };


0 commentaires

6
votes

cas 2 fort> fait référence à JavaScript Constructeurs de classe forts>. Une différence flagrante est que la variable n'est pas encore un objet, vous ne pouvez donc pas faire référence internes1.Sanity. Vous devriez initialiser la classe en créant une instance de ladite classe avant d'appeler tous les membres internes:

var myConstructor = function() {
    this.sanity = 0;
}

// wont work
alert(myConstructor.sanity);

// works
var thing1 = new myConstructor();
alert(thing1.sanity);


0 commentaires

23
votes

Objets statiques / Littéraux d'objets

Objets statiques ou littéraux d'objets, ne nécessitent pas d'instanciation avec l'opérateur Nouveau code> et se comporter comme des singletons. Considérez l'exemple suivant: p>

CODE: STRY> P>

undefined function function
I am a public member


2 commentaires

Les chiffres ne devraient-ils pas être retournés dans cette déclaration? "Notez que la modification de staticobject1.b a également affecté staticobject2.b ".


En effet, cela devrait. Fixé!



0
votes

Les fonctions sont des objets et des constructeurs (vous pouvez les instantiez à l'aide de Nouveau ).

Tables hachables / objets ( {} ) ne sont pas en mesure d'être instanciés, ils sont donc couramment utilisés comme structures de données. Et je ne suis pas si sûr s'il est sage de les appeler "objets".


0 commentaires