Ich habe gelesen "eloquent Javascript" Buch und ich kann nicht ein kleines Ding in der modules Kapitel.Objekte als Schnittstellen
Er (der Autor) geben uns diesen Code:
(function(exports) {
var names = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"];
exports.name = function(number) {
return names[number];
};
exports.number = function(name) {
return names.indexOf(name);
};
})(this.weekDay = {});
console.log(weekDay.name(weekDay.number("Saturday")));
// → Saturday
Aber das nächste, was er sagt, ist:
Das bisherige Muster häufig von JavaScript-Module verwendet wird, soll für den Browser. Das Modul wird eine einzelne globale Variable beanspruchen und seinen Code in eine Funktion einbinden, um seinen eigenen privaten Namespace zu haben. B Dieses Muster verursacht immer noch Probleme, wenn mehrere Module denselben Namen beanspruchen oder wenn Sie zwei Versionen eines Moduls nebeneinander laden wollen.
die Frage ist, dass ich die Musterprobleme nicht verstehen kann, könnte mir jemand auf eine spezifischere Art erklären? Vielen Dank.
Nun, stellen Sie sich vor, jemand kam und fügte hinzu '(function (exports) {exports.name = function() {return" Mike ";};}) (this.weekday = {});' Was würde protokolliert werden zur Konsole? –