So implementieren Sie die Modularisierung von JS-Code
Warum den Modulmodus verwenden?
Weil im globalen Bereich deklarierte Variablen und Funktionen automatisch zu Eigenschaften des globalen Objektfensters werden, was häufig zu Namenskonflikten führt Dies führt auch zu einigen sehr wichtigen Wartbarkeitsproblemen. Je mehr globale Variablen vorhanden sind, desto größer ist die Wahrscheinlichkeit, dass Fehler auftreten. Einer der Zwecke der Modularisierung besteht darin, dieses Problem zu lösen 🎜>
Null-Global-Variablen-Modus
Dieser Modus hat weniger Anwendungsszenarien und verwendet eine IIFE (sofort ausgeführte anonyme Funktion), die den gesamten Code umschließt , sodass alle Variablen und Funktionen innerhalb der Funktion verborgen sind und die globale Welt nicht verschmutzen.Nutzungsszenarien:
- Wenn der Code nicht von anderen Codes abhängig ist;
- Wenn keine Notwendigkeit besteht, den Code zur Laufzeit kontinuierlich zu erweitern oder zu ändern;
- Wann Wenn der Code kurz ist und nicht mit anderen Codes interagieren muss;
Einzelner globaler Variablenmodus
Grundlegende Definition
Der Modus „Einzelne globale Variable“ bedeutet, nur eine globale Variable zu erstellen (oder möglichst wenige globale Variablen zu erstellen). Variablen als mögliche Variable) und der Name der globalen Variablen muss eindeutig sein und darf nicht mit aktuellen oder zukünftigen integrierten APIs in Konflikt geraten. Alle Funktionscodes müssen auf dieser globalen Variablen gemountet werden.Es wurde häufig in verschiedenen beliebten Klassenbibliotheken verwendet, wie zum Beispiel:
- YUI definiert ein einzigartiges YUI globales Objekt
- JQuery definiert zwei globale Objekte, $ und JQuery
- Dojo definiert ein globales Dojo-Objekt
- Abschluss definiert ein globales Goog-Objekt
var Mymodule= {}; Mymodule.Book = function(){...}; Mymodule.Book.prototype.getName = function(){....}; Mymodule.Car = function(){...}; Mymodule.Car.prototype.getWheels = function(){....};
Definition eines Moduls
Ein Modul ist ein Allgemeines Funktionsfragment. Es werden keine neuen globalen Variablen oder Namespaces erstellt. Stattdessen wird der gesamte Code in einer einzigen Funktion gespeichert, und dieses Modul kann auch von anderen Modulen abhängen.function CoolModule(){ var something = 'cool'; var another = [1,2,3]; function doSomething(){ console.log( something); } function doAnother(){ console.log(another.join('!')); } return { doSomething: doSomething, doAnother: doAnother }; } var foo = CoolModule(); foo.doSomething(); //cool foo.doAnother(); //1!2!3
Daher muss das Modulmuster zwei notwendige Bedingungen erfüllen:
- Es muss eine externe geschlossene Funktion vorhanden sein und die Funktion muss mindestens einmal aufgerufen werden (jeder Aufruf erstellt eine neue Modulinstanz), z. B. CoolModule
- Die geschlossene Funktion muss mindestens eine interne Funktion zurückgegeben haben, damit die interne Funktion einen Abschluss im privaten Bereich bilden und auf den privaten Zustand zugreifen oder ihn ändern kann
var foo = ( function CoolModule(){ ...//代码同上例 })(); foo.doSomething(); foo.doAnother();
function CoolModule(){ var something = 'cool'; var another = [1,2,3]; function change() { pubicAPI.doSomething = doAnother; } function doSomething(){ console.log( something); } function doAnother(){ console.log(another.join('!')); } var pubicAPI = { change: change, doSomething: doSomething }; return pubicAPI; } var foo = CoolModule(); foo.doSomething(); //cool foo.change(); foo.doSomething(); //1!2!3 var foo1 = CoolModule(); foo1.doSomething(); //cool
Der moderne Modulmechanismus
Der Namespace ist. Die funktionale Gruppierung wird einfach durch das Hinzufügen von Attributen zu globalen Variablen ausgedrückt.Durch das Gruppieren verschiedener Funktionen nach Namespaces können Sie Ihre einzelnen globalen Variablen organisieren und den Teammitgliedern ermöglichen, zu wissen, in welchem Abschnitt neue Funktionen definiert werden sollen. Oder zu welchem Abschnitt wechseln, um vorhandene Funktionen zu finden.
例如:定义一个全局变量Y,Y.DOM下的所有方法都是和操作DOM相关的,Y.Event下的所有方法都是和事件相关的。 常见的用法是为每一个单独的JS文件创建一个新的全局变量来声明自己的命名空间; 每个文件都需要给一个命名空间挂载功能;这时就需要首先保证该命名空间是已经存在的,可以在单全局变量中定义一个方法来处理该任务:该方法在创建新的命名空间时不会对已有的命名空间造成破坏,使用命名空间时也不需要再去判断它是否存在。 大多数模块依赖加载器或管理器,本质上都是将这种模块定义封装进一个友好的API 以上代码的核心是modules[name] =
impl.apply(impl,deps);,为了模块的定义引入了包装函数(可以传入任何依赖),并且将模块的API存储在一个根据名字来管理的模块列表modules对象中; 使用模块管理器MyModules来管理模块: 异步模块定义(AMD): 通过调用全局函数define(),并给它传入模块名字、依赖列表、一个工厂方法,依赖列表加载完成后执行这个工厂方法。AMD模块模式中,每一个依赖都会对应到独立的参数传入到工厂方法里,即每个被命名的依赖最后都会创建一个对象被传入到工厂方法内。模块可以是匿名的(即可以省略第一个参数),因为模块加载器可以根据JavaScript文件名来当做模块名字。要使用AMD模块,需要通过使用与AMD模块兼容的模块加载器,如RequireJS、Dojo来加载AMD模块 以上所说的模块都是是基于函数的模块,它并不是一个能被稳定识别的模式(编译器无法识别),它们的API语义只是在运行时才会被考虑进来。因此可以在运行时修改一个模块的API 未来的模块机制 ES6为模块增加了一级语法支持,每个模块都可以导入其它模块或模块的特定API成员,同样也可以导出自己的API成员;ES6的模块没有‘行内’格式,必须被定义在独立的文件中(一个文件一个模块)ES6的模块API更加稳定,由于编译器可以识别,在编译时就检查对导入的API成员的引用是否真实存在。若不存在,则编译器会在运行时就抛出‘早期’错误,而不会像往常一样在运行期采用动态的解决方案; bar.js foo.js baz.js import可以将一个模块中的一个或多个API导入到当前作用域中,并分别绑定在一个变量上; module会将整个模块的API导入并绑定到一个变量上; export会将当前模块的一个标识符(变量、函数)导出为公共API; 模块文件中的内容会被当做好像包含在作用域闭包中一样来处理,就和函数闭包模块一样; Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Modularisierung von JS-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!var MyGolbal = {
namespace: function (ns) {
var parts = ns.split('.'),
obj = this,
i, len = parts.length;
for(i=0;i<len;i++){
if(!obj[parts[i]]){
obj[parts[i]] = {}
}
obj = obj[parts[i]];
}
return obj;
}
};
MyGolbal.namespace('Book'); //创建Book
MyGolbal.Book; //读取
MyGolbal.namespace('Car').prototype.getWheel = function(){...}
var MyModules = (function Manager() {
var modules = {};
function define(name, deps, impl) {
for(var i=0; i<deps.length; i++){
deps[i] = modules[deps[i]];
}
modules[name] = impl.apply(impl,deps);
}
function get(name) {
return modules[name];
}
return {
define: define,
get: get
};
})();
MyModules.define('bar',[],function () {
function hello(who) {
return 'let me introduce: '+who;
}
return{
hello: hello
};
});
MyModules.define('foo',['bar'],function (bar) {
var hungry = 'hippo';
function awesome() {
console.log(bar.hello(hungry).toUpperCase());
}
return {
awesome: awesome
};
});
var foo = MyModules.get('foo');
foo.awesome();//LET ME INTRODUCE: HIPPO
define('my-books', ['dependency1','dependency2'],
function (dependency1, dependency2) {
var Books = {};
Books.author = {author: 'Mr.zakas'};
return Books; //返回公共接口API
}
);
requre(['my-books'] , function(books){
books.author;
...
}
)
function hello(who) {
return 'let me introduce: '+who;
}
export hello; //导出API: hello
//导入bar模块的hello()
import hello from 'bar';
var hungry = 'hippo';
function awesome() {
console.log(hello(hungry).toUpperCase());
}
export awesome;//导出API: awesome
//完整导入foo和bar模块
module foo from 'foo';
module bar from 'bar';
foo.awesome();

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

So verwenden Sie PHP und JS zum Erstellen eines Aktienkerzendiagramms. Ein Aktienkerzendiagramm ist eine gängige technische Analysegrafik auf dem Aktienmarkt. Es hilft Anlegern, Aktien intuitiver zu verstehen, indem es Daten wie den Eröffnungskurs, den Schlusskurs, den Höchstkurs usw niedrigster Preis der Aktie. In diesem Artikel erfahren Sie anhand spezifischer Codebeispiele, wie Sie Aktienkerzendiagramme mit PHP und JS erstellen. 1. Vorbereitung Bevor wir beginnen, müssen wir die folgende Umgebung vorbereiten: 1. Ein Server, auf dem PHP 2. Ein Browser, der HTML5 und Canvas 3 unterstützt

So optimieren Sie die Wartbarkeit von Java-Code: Erfahrungen und Ratschläge Im Softwareentwicklungsprozess ist das Schreiben von Code mit guter Wartbarkeit von entscheidender Bedeutung. Wartbarkeit bedeutet, dass Code leicht verstanden, geändert und erweitert werden kann, ohne dass es zu unerwarteten Problemen oder zusätzlichem Aufwand kommt. Für Java-Entwickler ist die Optimierung der Wartbarkeit von Code ein wichtiges Thema. In diesem Artikel werden einige Erfahrungen und Vorschläge geteilt, um Java-Entwicklern dabei zu helfen, die Wartbarkeit ihres Codes zu verbessern. Befolgen Sie standardisierte Benennungsregeln. Standardmäßige Benennungsregeln können die Lesbarkeit des Codes verbessern.

Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen in PHP und JS. Mit der rasanten Entwicklung des Internets und der Technologie ist der Aktienhandel für viele Anleger zu einer wichtigen Möglichkeit geworden. Die Aktienanalyse ist ein wichtiger Teil der Anlegerentscheidung, und Kerzendiagramme werden häufig in der technischen Analyse verwendet. Wenn Sie lernen, wie man Kerzendiagramme mit PHP und JS zeichnet, erhalten Anleger intuitivere Informationen, die ihnen helfen, bessere Entscheidungen zu treffen. Ein Candlestick-Chart ist ein technischer Chart, der Aktienkurse in Form von Candlesticks anzeigt. Es zeigt den Aktienkurs

So implementieren Sie die Kartenschwenkfunktion mit JS und Baidu Map. Baidu Map ist eine weit verbreitete Kartendienstplattform, die häufig zur Anzeige geografischer Informationen, Positionierung und anderer Funktionen in der Webentwicklung verwendet wird. In diesem Artikel wird erläutert, wie Sie mit JS und der Baidu Map API die Kartenschwenkfunktion implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Vorbereitung Bevor Sie die Baidu Map API nutzen können, müssen Sie zunächst ein Entwicklerkonto auf der Baidu Map Open Platform (http://lbsyun.baidu.com/) beantragen und eine Anwendung erstellen. Erstellung abgeschlossen

Überblick über die Verwendung von JS und Baidu Maps zum Implementieren von Funktionen zur Verarbeitung von Kartenklickereignissen: In der Webentwicklung ist es häufig erforderlich, Kartenfunktionen zum Anzeigen des geografischen Standorts und geografischer Informationen zu verwenden. Die Verarbeitung von Klickereignissen auf der Karte ist ein häufig verwendeter und wichtiger Teil der Kartenfunktion. In diesem Artikel wird erläutert, wie Sie mithilfe von JS und der Baidu-Karten-API die Klickereignisverarbeitungsfunktion der Karte implementieren, und es werden spezifische Codebeispiele angegeben. Schritte: Importieren Sie die API-Datei von Baidu Map. Importieren Sie zunächst die Datei von Baidu Map API in die HTML-Datei.

Verwendung von JS und Baidu Maps zur Implementierung der Karten-Heatmap-Funktion Einführung: Mit der rasanten Entwicklung des Internets und mobiler Geräte sind Karten zu einem häufigen Anwendungsszenario geworden. Als visuelle Darstellungsmethode können Heatmaps uns helfen, die Verteilung von Daten intuitiver zu verstehen. In diesem Artikel wird die Verwendung von JS und der Baidu Map API zur Implementierung der Karten-Heatmap-Funktion vorgestellt und spezifische Codebeispiele bereitgestellt. Vorbereitung: Bevor Sie beginnen, müssen Sie Folgendes vorbereiten: ein Baidu-Entwicklerkonto, eine Anwendung erstellen und den entsprechenden AP erhalten

Mit der rasanten Entwicklung der Internetfinanzierung sind Aktieninvestitionen für immer mehr Menschen zur Wahl geworden. Im Aktienhandel sind Kerzendiagramme eine häufig verwendete Methode der technischen Analyse. Sie können den sich ändernden Trend der Aktienkurse anzeigen und Anlegern helfen, genauere Entscheidungen zu treffen. In diesem Artikel werden die Entwicklungskompetenzen von PHP und JS vorgestellt, der Leser wird zum Verständnis des Zeichnens von Aktienkerzendiagrammen geführt und es werden spezifische Codebeispiele bereitgestellt. 1. Aktien-Kerzendiagramme verstehen Bevor wir uns mit dem Zeichnen von Aktien-Kerzendiagrammen befassen, müssen wir zunächst verstehen, was ein Kerzendiagramm ist. Candlestick-Charts wurden von den Japanern entwickelt
