1048 votes

Déclaration de Namespace JavaScript

Quelle manière soignée que vous utilisez pour déclarer les espaces de noms de JavaScript. Je suis tombé sur celui-ci :

Y a-t-il une façon plus élégante ou succincte de le faire ?

Juste un peu de plaisir...

1060voto

Jaco Pretorius Points 9630

J'utilise l'approche trouvé l'Entreprise jQuery site, ici

Voici leur exemple montrant comment déclarer privée et publique des propriétés et des fonctions. Tout est fait comme un auto-exécution de la fonction anonyme.

(function( skillet, $, undefined ) {
    //Private Property
    var isHot = true;

    //Public Property
    skillet.ingredient = "Bacon Strips";

    //Public Method
    skillet.fry = function() {
        var oliveOil;

        addItem( "\t\n Butter \n\t" );
        addItem( oliveOil );
        console.log( "Frying " + skillet.ingredient );
    };

    //Private Method
    function addItem( item ) {
        if ( item !== undefined ) {
            console.log( "Adding " + $.trim(item) );
        }
    }    
}( window.skillet = window.skillet || {}, jQuery ));

Donc, si vous voulez accéder à l'un des membres du public vous allez simplement à la poêle.fry() ou à la poêle.ingrédients

Ce qui est vraiment cool, c'est que vous pouvez maintenant étendre l'espace de noms en utilisant la même syntaxe.

//Adding New Functionality to the Skillet
(function( skillet, $, undefined ) {
    //Private Property
    var amountOfGrease = "1 Cup";

    //Public Method
    skillet.toString = function() {
        console.log( skillet.quantity + " " + 
                     skillet.ingredient + " & " + 
                     amountOfGrease + " of Grease" );
        console.log( isHot ? "Hot" : "Cold" );
    };    
}( window.skillet = window.skillet || {}, jQuery ));

798voto

dfa Points 54490
J’aime

354voto

Ionuț G. Stan Points 62482

Une autre façon de le faire, que je considère qu’il est un peu moins restrictive que la forme littérale de l’objet, est la suivante :

Ce qui précède est à peu près comme le modèle de module et que vous le vouliez ou non, il vous permet d’exposer toutes vos fonctions comme étant publics, tout en évitant la structure rigide d’un littéral d’objet.

158voto

Alex Pacurar Points 2801
<blockquote> <p>Y a-t-il une façon plus élégante ou succincte de le faire ?</p> <p>Oui :</p><pre><code></code></pre><p>alors vous pouvez avoir</p><pre><code></code></pre></blockquote>

97voto

Brett Ryan Points 4905

J’ai normalement générer dans une fermeture :

Mon style au fil des ans a eu un changement subtil depuis la rédaction du présent, je me surprends maintenant écrire la fermeture comme ceci :

Je trouve que cette manière l’API publique et la mise en oeuvre sont plus faciles à comprendre, pensez à l’instruction return comme étant une interface publique pour la mise en œuvre.

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