« Billets plus récents

Variables privées en Javascript

Voici-ci dessous un pattern Javascript que je rencontre souvent :

(function() {

    ...

})();
C'est seulement depuis ce matin que j'ai compris son utilité (honte à moi).
Cela permet de définir des variables privées.

Voici un exemple de mise en oeuvre :

<html>
    <head>
    <script type="text/javascript">
        var public_var = 'public';
        var namespace = {};

        (function() {
            var private_var = 'private';
            namespace.foobar = function() {
                console.log('foobar function');
                console.log(private_var);
            }
        })();

        window.onload = function() {
            console.log('onload function');
            try {
                console.log(private_var);
            } catch(e) {
                console.log('private_var access deny here');
            }
            namespace.foobar();
        }
    </script>
    </head>
    <body>
    </body>
</html>

Le résultat dans la console est :

onload function
private_var access deny here
foobar function
private

La variable private_var est accessible seulement depuis le code qui se trouve dans :

(function() {

    ...

})();

Dans cet exemple, seul namespace.foobar a accès à cette variable.

Read and Post Comments

Première version de « jquery.expandBox plugin »

Je viens juste de publier un tout petit plugin Javascript basé sur jQuery : jquery.expandBox.

Le but de ce plugin est de permettre d'étendre horizontalement ou verticalement un ou plusieurs blocs HTML avec l'espace libre restant dans un élément parent du bloc à étendre.
Pour mieux comprendre je vous conseille de consulter la page de démonstration suivante : jquery.expandBox - Horizontal demo page.

La semaine dernière j'ai passé un peu de temps à la recherche d'un plugin de ce type sur jQuery Plugins mais je n'ai rien trouvé… Par contre, si de votre coté vous avez trouvé ce type de plugin, merci de me le signaler par mail ou dans les commentaires de ce billet.

Ce plugin est en version 0.1.0, à l'avenir il va peut être évoluer et même changer de nom si celui-ci ne s'avère pas pertinent.

Read and Post Comments
« Billets plus récents

Mes flux :