5 Stimmen

Javascript: Welche Funktionsstruktur zu verwenden

Ich habe einen Artikel über die bewährten Methoden von Javascript gelesen und war etwas verwirrt darüber, welche Funktionsstruktur verwendet werden soll...

Ich glaube, es könnte sich auf den Gültigkeitsbereich der Variablen und Funktionen auswirken, aber welche dieser Strukturen würdest du verwenden (und welche gilt als bewährte Methode)?

Struktur 1: Verwenden der Objektliterale.

var obj1 = {
    _myvar : 'myval',

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

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

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

Struktur 2: Den Code in eine automatisch ausgeführte Funktion einpacken.

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

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

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

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

3voto

Gabi Purcaru Punkte 29912

Sie verwenden die selbstausführende anonyme Funktion, wenn Sie nicht möchten, dass andere in Ihren Code eingreifen und/oder keine globalen Variablen verwenden möchten. Wenn Sie diese Funktionen/Objekte/ was auch immer an anderer Stelle verwenden möchten, sollten Sie die erste Option verwenden.

1voto

VoteyDisciple Punkte 36203

"Struktur 1" ist angemessen, wenn Sie Zugriff auf die Methoden und Variablen in einem Objekt von anderen Teilen Ihres Codes benötigen. Dieses Format sollte immer Ihre Präferenz sein, wenn Sie Bibliothekscode schreiben, der anderswo wiederverwendet werden soll.

"Struktur 2" ist angemessen, wenn Sie Ihren Code nicht mit anderen Teilen der Anwendung teilen möchten und daher die Variablen und Funktionen vor Eingriffen von anderen schützen möchten.

0voto

Frank Hellwig Punkte 11

Ich habe Christian Heilmanns Revealing Module Pattern als sehr nützlich empfunden. (Scrollen Sie auf seiner Seite zum letzten "grünen Bildschirm" Codebeispiel.)

Mit diesem Muster können Sie alle Ihre Methoden/Funktionen privat in einer anonym ausgeführten Funktion erstellen und dann Ihre öffentliche Schnittstelle über das zurückgegebene Objekt wählen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X