3 votes

Comment créer un paquetage Javascript contenant un constructeur ?

Ici, j'ai essayé de créer un paquetage appelé com.matogen.ght avec une classe dans ce paquetage, Calendar. J'aimerais que la méthode init() soit appelée automatiquement lorsque j'instancie l'objet calendrier. L'exemple ci-dessous fonctionne, mais je dois toujours appeler explicitement la méthode init().

var com = {
    matogen : {
        ght : {
            'Calendar' : function() {       

                this.init = function() {
                    console.log("This is my constructor");
                }

            }
        }
    } 
}

$(document).ready(function() {
    var cal = new com.matogen.ght.Calendar();
    cal.init();

});

4voto

Fabrizio Calderan Points 43398

Il suffit de modifier votre init comme suit

this.init = (function() {
    console.log("This is my constructor");
}());

avec une fonction anonyme auto-exécutée ou, si vous préférez, appelez simplement la fonction elle-même comme suit

...
    Calendar : function() {       

        this.init = function() {
            console.log("This is my constructor");
        };
        this.init();
    }
...

2voto

Lee Kowalkowski Points 6278

Eh bien, comme vous le faites newcom.matogen.ght.Calendar() , Calendar() est votre constructeur.

Ainsi :

var com = {
    matogen : {
        ght : {
            Calendar : function() {       
                console.log("This is my constructor");
            }
        }
    } 
}

... serait exact.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X