2011-10-19 3 views
1

Dans quelques exemples de code, je l'ai vu ce qui suit lors de l'appel d'une classe:appel classe Javascript

var foo = new Foo.bar(); 

où il semble une méthode est appelée instanciation. Comment une structure de classe serait-elle mise en place pour accommoder ceci? Lorsque j'essaie d'accéder directement à une méthode lors de l'appel d'une nouvelle classe, j'obtiens une erreur: appel à la fonction anonyme.

Merci!

+0

Il n'appelle pas une méthode après l'instanciation, il utilise la fonction fournie en tant que constructeur. Il crée un nouvel objet 'Foo.bar', pas un nouvel objet' Foo', puis appelle 'bar'. – zzzzBov

+0

'Foo' est juste un espace de noms pour le constructeur' bar() '. – jfriend00

Répondre

6
var Foo = {}; 
Foo.bar = function() { 
    this.variable = "something"; 
} 

var foo = new Foo.bar(); 
foo.variable === "something"; // true 

Foo est un pseudo-espace de noms, mais vraiment il est juste un objet. bar est une fonction anonyme qui dans ce cas enregistre un nom de variable variable dans son étendue.