Ich habe viel über Objekt-Zusammensetzung in JavaScript und die Vorteile dieses Musters über die 'Klasse' Muster gelesen. Ich habe Beispiele der Zusammensetzung gesehen, die zeigen, Object.create()
zu verwenden, um neue Objekte und andere Beispiele zu erstellen, die Demonstration, die Factory-Funktionen verwendet, die Objekte zurückgeben.Factory-Funktionen vs Object.create - JavaScript - Wann zu verwenden, welche
Object.create Beispiel:
var Component = {
init: function() {
// do stuff
}
};
var button = Object.create(Component);
button.init();
Werksfunktion, Beispiel:
var ComponentFactory = function() {
return {
init: function() {
// do stuff
}
}
}
var button = ComponentFactory();
button.init();
Ich verstehe, dass Fabrik Funktionen sind ausschließlich für die Komplexität bei der Erstellung beteiligten Objekte abstrahiert weg, aber ich zu verstehen, wenn ich versuche, Es gibt einen praktischen Unterschied zwischen Object.create()
und einer Funktion, die ein Objekt zurückgibt.
Es ist nicht entweder oder. Sie sollten [beide zusammen] (http://stackoverflow.com/a/39546963/1048572) verwenden. – Bergi
Der springende Punkt einer Factory-Funktion (oder eines Konstruktors) ist, dass Sie keine '.init()' Methode brauchen! – Bergi