2016-04-26 12 views
0

Könnte jemand mir den richtigen Weg erklären, um Bibliotheken von unten Optionen zu erstellen.Richtiger Weg, um Bibliotheken in Javascript zu erstellen

 //option 1 

    function Fruit(){ 
     var color,shape; 
     this.start = function(l,callback){ 
     color = "Red"; shape = "Circle"; 
     return callback(); 
     }   
    } 

    //option2 

    function Fruit(){ 

     this.start = function(l,callback){ 
     this.color = "Red"; this.shape = "Circle"; 
     return callback(); 
     }   
    } 

    //option3 

    var Fruit = { 
     var color,shape; 
     start : function (l,callback) { 
      color = "Red"; shape = "Circle"; 
      return callback(); 
     } 
    } 

Ich möchte wissen, was der richtige Weg ist, Objekte und Funktionen innerhalb der IT zu schaffen. Wenn alle drei Optionen falsch sind, könnte mir jemand den richtigen Weg zeigen.

+0

Ihre Option 3 ist ein Syntaxfehler, also ist es keine Option. Außerdem scheint es ein Objekt und keine Konstruktorfunktion zu erzeugen. – Bergi

+0

Vielleicht möchten Sie sich [Javascript: Muss ich this.var für jede Variable in einem Objekt setzen?] (Http://Stackoverflow.com/q/13418669/1048572) für den Unterschied zwischen Ihren ersten beiden Optionen. Es gibt jedoch viele Möglichkeiten, Bibliotheken mit Klassenkonstruktoren zu schreiben, die alle unterschiedlich sind und keine davon falsch sind - es gibt keinen "richtigen Weg". – Bergi

+0

Ich markierte die Frage, weil sie so viele "gute" Möglichkeiten zum Erstellen von Objekten als Experte JavaScript-Entwickler und Bibliotheken sind –

Antwort

1

Meine persönliche Vorliebe, jedoch gibt es viele Möglichkeiten, eine Katze zu enthäuten. Fühlen Sie sich frei, die Namen von Vars usw. zu ändern.

//option 4 

function Fruit(_fruit, _callback){ 
    var that = this; 
    this.color = ''; 
    this.shape = ''; 

    var init = function(f, c){ 
    switch(f){ 
     case 'apple': 
     that.color = 'red'; 
     that.shape = 'circle' 
     break; 
    } 
    return c(); 
    } 

    init(_fruit, _callback);   
} 

var apple = new Fruit('apple', function(){ 
    // Although you don't really need a callback as you're not doing any async tasks... 
    alert('Apple generated'); 
}); 
Verwandte Themen