Heim > Artikel > Web-Frontend > Einführung in anonyme Funktionen und Kapselung in Javascript_Javascript-Kenntnisse
Nachdem ich eine Weile die Kapselung verschiedener JS-Bibliotheken verwirrt hatte, bekam ich endlich eine Ahnung. Ungefähr:
Also habe ich eine frühe Version von jQuery gefunden. Die Versionsnummer ist ungefähr wie folgt.
davon
Damit wir ein ähnliches Paket erstellen können
}
})(Fenster)
1. Definieren Sie jQuery-Symbole und globale Aufrufe
2.Asynchrone Unterstützung
Also habe ich nach einem früheren jQuery-Paket gesucht und die Methode war ungefähr dieselbe, außer. .
var $ = jQuery;
};
Es ist eine so magische Beurteilungsmethode, dass wir die jQuery im vorherigen Schritt nicht neu schreiben können. Also musste ich einen Blick darauf werfen, wie das neueste jQuery-Paket aussieht. Also habe ich 2.1.1 geöffnet und festgestellt, dass neben dem Hinzufügen vieler Funktionen die Grundidee dieselbe geblieben ist
if (typeof module === "object" && typeof module.exports === "object") {
module.exports = global.document ?
Fabrik(global, wahr) :
Funktion(w) {
if (!w.document) {
throw new Error("jQuery erfordert ein Fenster mit einem Dokument");
}
Rückgabe ab Werk(w);
};
} sonst {
Fabrik (global);
}
}(typeof window !== "undefiniert" ? window : this, function(window, noGlobal) {
var jQuery = function() {
console.log('jQuery');
};
if (typeof define === "function" && define.amd) {
define("jquery", [], function() {
jQuery zurückgeben;
});
};
strundefiniert = Typ von undefiniert;
if (typeof noGlobal === strundefiniert) {
window.jQuery = window.$ = jQuery;
};
jQuery zurückgeben;
}));
Backbone 封装
打开了Backbone看了一下
if (typeof define === 'function' && define.amd) {
define(['underscore', 'jquery', 'exports'], function(_, $, exports) {
root.Backbone = Factory(root, exports, _, $);
});
} else if (typeof exports !== 'undefiniert') {
var _ = require('underscore');
Fabrik(root, exporte, _);
} sonst {
root.Backbone = Factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$));
}
}(this, function(root, Backbone, _, $) {
Rückgrat.$ = $;
return Backbone;
}));
Sie können auch jQuery verwenden und einen Unterstrich hinzufügen.
Unterstrich 封装
于是,又看了看Underscore,发现这个库又占领了一个符号 _
if (type d'exportations !== 'undefined') {
Si (type de module !== 'undéfini' && module.exports) {
exports = module.exports = _;
>
exporte._ = _;
} autre {
racine._ = _;
>
if (typeof Définir === 'fonction' && définir.amd) {
definition('underscore', [], function() {
return _;
});
>
}.call(this));