Restituisce le funzioni all'interno degli oggetti Javascript

1

Dopo aver incontrato le opinioni di Douglas Crockford sull'OOP privo di classe, e aver eliminato nuovo e questo in Javascript, ho provato a definire un oggetto con una propria variabile e funzione, e restituendolo in un oggetto javascript, come mostrato di seguito:

var newObj = function (name, lang){
    var obj = {
            "name":name,
            "greeter":greeter
    };
    return obj;
};

function greeter (lang){
        switch (lang){
                case "en":return "hi";
                case "es":return "hola";
                default: return "hello";
        }
}


//and finally, use the object    
var name = "john", lang = "es";  
var obj = newObj(name, lang);

console.log(obj.name);
console.log(obj.greeter(lang));

So che questo codice funziona in NodeJS, ma mi chiedo se sia effettivamente una buona idea farlo in questo modo. Più in particolare, ci sono implicazioni / conseguenze nel restituire funzioni all'interno di un oggetto javascript di cui dovrei essere a conoscenza?

    
posta Yogesch 14.04.2016 - 06:39
fonte

1 risposta

2

In JavaScript, le funzioni sono solo oggetti. In quanto tale, non vi è alcun motivo particolare per non passarli in giro come parti di altri oggetti. In effetti, le librerie JavaScript possono fare questo, ad esempio, permettendoti di passare in un oggetto contenente un success e un callback error .

Come un modo di fare OOP in JavaScript, questo è un modo perfettamente ragionevole di fare le cose, e ho lavorato sul codice di produzione reale fatto. Se è il modo migliore per farlo è una questione di opinione.

    
risposta data 14.04.2016 - 18:30
fonte

Leggi altre domande sui tag