Hirdetés

Új hozzászólás Aktív témák

  • Jim-Y
    veterán

    Sziasztok,

    Láttam egy olyat, hogy jó "szokás", ha a szkriptünket a következő közé írjuk:

    (function(){
    // js kód ...
    })();

    Olvasgattam utána, de még mindig nem nagyon világos, miért jobb így kezdeni egy szkriptet, mint e nélkül. Van erre valami egyszerű magyarázat, vagy ez már mély víz? :)

    Ez egy IIFE (immediately invoked function expression). Bővebben erről itt olvashatsz. Ben Alman - IIFE

    Azért jó, mert
    1: csinálsz egy függvényt, ezzel ugye egyből egy új variable environmentet
    2: rögtön meg is hívod

    Ami az iffy-n belül van az nem "szennyezi" a globális névteret. A pattern segítségével le is tudjuk védeni az egyes könyvtárakat. Például a következő kódban a jQuery object-re $-ként tudunk hivatkozni anélkül, hogy félnünk kéne, hogy egy másik 3rd party library közben "felüldefiniálná" a "$" jelet.

    Például:

    (function($) {

    }(jQuery));

    Az pedig, hogy miért jobb nem szennyezni a globális névteret, elsőszámű good-habit. Ennek utána tudsz olvasni neten.

    Egyébként erre épül nem egy pattern, például a self revealing module pattern is. Erről itt olvashatsz bővebben: Addy Osmani - Design Patterns #revealingmodulepattern

Új hozzászólás Aktív témák