2010-10-12 14 views
5

czytałem artykuł na temat najlepszych praktyk obsługa JavaScript, a trochę irytować, o której funkcja struktura używać ...JavaScript: Funkcja, która struktura używać

myślę, może to mieć wpływ na zakres zmiennych i funkcje, ale której jednej z tych struktur używałbyś (i która uważana jest za najlepszą praktykę)?

Struktura 1: użyj literałów obiektowych.

var obj1 = { 
    _myvar : 'myval', 

init: function() { 
    this.function1(); 
    this.function2(); 
}, 

function1: function() { 
    alert('function1'); 
}, 

function2: function() { 
    alert('function2'); 
} 
}; 
obj1.init(); 



Struktura 2: Owiń kod w funkcji auto-wykonawczy.

(function(){ 
var _myvar = 'myval', 

function1 = function() { 
    alert('function1'); 
}, 

function2 = function() { 
    alert('function2'); 
}, 

init = (function() { 
    function1(); 
    function2(); 
})(); 
})(); 
+0

Powiązane: http://stackoverflow.com/questions/3220870/javascript-should-i-be-hiding-my-implementations – JulianR

Odpowiedz

3

użyć samodzielnego wykonywania anonimową funkcję, jeśli nie chcesz, aby inni ingerować w kod i/lub nie chcą używać zmiennej globalnej. Jeśli chcesz używać tych funkcji/obiektów/cokolwiek innego, możesz użyć pierwszego.

1

"Struktura 1" jest odpowiednia, gdy potrzebujesz dostępu do metod i zmiennych w obiekcie z innych części kodu. Ten format powinien zawsze być twoim preferencją podczas pisania kodu biblioteki, który ma być ponownie użyty w innym miejscu.

"Struktura 2" jest odpowiednia, gdy nie chcesz udostępniać swojego kodu innym częściom aplikacji, a więc chcesz chronić zmienne i funkcje przed wszelkimi zakłóceniami pochodzącymi z innych źródeł.

0

Odkryłem, że Christian Heilmann's Revealing Module Pattern jest całkiem użyteczny. (Przewiń w dół do ostatniego przykładowego kodu "zielonego ekranu" na swojej stronie).

Przy użyciu wzorca można tworzyć wszystkie metody/funkcje w sposób prywatny w anonimowo wykonywanej funkcji, a następnie wybrać publiczny interfejs za pomocą zwróconego obiektu .

Powiązane problemy