Ich habe einige Übungen auf der interessanten "level up your coding" Seite gemacht, Exercism.io und sie benutzen die CommonJS Style Module für ihre Code Samples und Tests mit Jasmine. Ich habe immer gedacht, dass Module ein Problem sind, mit dem ich nicht umgehen wollte, aber in diesen Bissgrößen-Brocken sehen sie aus, als könnten sie sehr nützlich sein, um sie in meinen Single Page Applications zu verwenden. Also habe ich gegoogelt und Github nach ein paar guten Beispielen für die Verwendung von CommonJS-Modulen gesucht - und habe noch immer keine gefunden, die im Detail erklärt, was die Hauptmuster sind und wie sie sich unterscheiden. Zum Beispiel sah aus wie diese eine Antwort, die ich vorgelegt:Muster von CommonJS-Modulen?
var HelloWorld = function() {};
HelloWorld.prototype.hello = function() {
return 'Hello, World!'
};
module.exports = HelloWorld;
Aber ein anderer sah aus wie dieses
var Bob = function() {
this.hey = function (input) {
input = input.split('');
if (input.indexOf('!') >= 0) {return 'Whoa, chill out!'}
if (input.indexOf('?') >= 0) {return 'Sure.'}
return 'Whatever.'
};
}
module.exports = Bob;
Insbesondere Ich frage mich, was der Unterschied ist eine Funktion innerhalb der übergeordneten Definition zwischen nisten, wie getan mit der Bob-hey() - Funktion, im Gegensatz zu der Art, wie HelloWorld hallo() Prototyp stattdessen verwendet.
Entschuldigung der Bob.hello() war ein Tippfehler, das habe ich behoben! Ich bin neu beim Schreiben von Modulen, also habe ich nur die in den Demo-Dateien gefundenen Formate für Exercism.io benutzt - die hello() -Funktion wird in der Jasmine-Spezifikation verwendet, indem zuerst eine Instanz erstellt wird - var helloWorld = new HelloWorld(); - dann das eigentliche fn - halloWorld.hello() –