JS模块与命名空间的介绍_javascript技巧
起因
将代码组织到类中的一个重要原因是让代码更加“模块化”,可以在很多不同的场景中实现代码的重用。但类不是唯一的模块化代码的方式。
一般来讲,模块是一个独立的JS文件。模块文件可以包含一个类定义、一组相关类、一个实用函数库或者一些待执行的代码。
模块化的目标是支持大规模的程序开发,处理分散源中代码的组装,并且能让代码正确运行,哪怕包含了不需要的模块代码,也可以正确执行代码。
理想状态下,所有模块都不应当定义超过一个全局标识。
模块函数
通过把模块定义在某个函数的内部来实现,定义的变量和函数都属于该函数的局部变量,在函数外不可见。实际上,可以将这个函数作用域用做模块的命名空间(模块函数)
一旦将模块代码封装进一个函数中,就需要一些方法导出公用API,以便在模块函数外部调用它们。下面有几种方式导出公用API:
首先创建一个命名空间
// 创建一个全局变量用来存放与学校相关的模块
var school; // 创建school命名空间
if(!school) school = {};
1. 利用构造函数
// 返回Student构造函数来导出公共API
school.Student = (function() {
function Student() {
}
// ...... 定义Student的原型对象和私有属性和方法 ........
return Student; // 返回Student构造方法导出公共API
})();
2. 返回命名空间对象
如果模块API包括多个单元,则它可以返回命名空间对象
// 为school添加students模块
school.students = (function() {
// 这里定义了很多类如课程类/成绩类, 使用局部变量和函数
function Subject() { /* ... */ }
function Grade() { /* ... */ }
// 通过返回命名空间对象将API导出
return {
Subject: Subject,
Grade: Grade
};
})();
3. 通过关键字new调用
另外一种类似类似技术:把模块函数当做构造函数,通过new来调用。把它们(公共API)赋值给this属性来将其导出
school.students = (new function() {
// ..... 这里省略了代码 ......
// 将API导到this对象中
this.Subject = Subject;
this.Grade = Grade;
// 注意,这里没有返回值
}()); // 括号写在里面。这里是创建新实例,new后面应紧跟构造函数的调用而不是表达式
4. 已定义命名空间对象
作为一种替代方案,如果已经定义了全局命名空间对象,通过模块函数可以直接设置那个对象的属性。
// 如果已经定义了命名空间对象
var school; // 创建school命名空间
if(!school) school = {};
school.students = {}; // student命名空间已经定义
(function(students) {
// ..... 这里省略了代码 ......
// 将公共API导到上面定义的命名空间中
students.Subject = Subject;
students.Grade = Grade;
// 这里也不需要返回值
})(school.students);
为此,导出公共API的方式已经讲完。

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



PHP-Fehler beheben: Die angegebene Namespace-Klasse wurde nicht gefunden. Bei der Entwicklung mit PHP treten häufig verschiedene Fehlermeldungen auf. Einer der häufigsten Fehler ist „Die angegebene Namespace-Klasse wurde nicht gefunden“. Dieser Fehler wird normalerweise dadurch verursacht, dass auf die importierte Klassendatei nicht ordnungsgemäß auf den Namespace verwiesen wird. In diesem Artikel wird erläutert, wie Sie dieses Problem lösen können, und es werden einige Codebeispiele bereitgestellt. Schauen wir uns zunächst ein Beispiel für eine häufige Fehlermeldung an: Fatalerror:UncaughtError:C

Das F3-Framework ist ein einfaches, benutzerfreundliches, flexibles und skalierbares PHPWeb-Framework. Sein Namespace-Mechanismus bietet uns eine standardisiertere, besser lesbare und klarere Codestruktur. In diesem Artikel untersuchen wir, wie Namespaces im F3-Framework verwendet werden. 1. Was ist ein Namespace? Namespaces werden häufig verwendet, um das Problem von Namenskonflikten in PHP zu lösen. Er kann eine oder mehrere Klassen, Funktionen oder Konstanten in einem Namespace kapseln, was dem Hinzufügen eines Präfixes entspricht. Beispiel

Redis ist eine Open-Source-Hochleistungs-Schlüsselwertspeicherdatenbank. Wenn wir Redis zur Datenspeicherung verwenden, müssen wir das Design des Schlüsselnamensraums und des Ablaufmechanismus berücksichtigen, um die Leistung und Datenintegrität von Redis aufrechtzuerhalten. In diesem Artikel werden die Designideen und Implementierungsmethoden des Redis-Namespace und des Ablaufmechanismus vorgestellt. 1. Designideen für Redis-Namespaces In Redis können Schlüssel beliebig festgelegt werden. Um die Verwaltung und Unterscheidung verschiedener Datentypen zu erleichtern, führt Redis das Konzept des Namespace ein. Leben

C++ ist eine weit verbreitete Programmiersprache auf hoher Ebene. Sie verfügt über eine hohe Flexibilität und Skalierbarkeit, erfordert jedoch auch, dass Entwickler ihre grammatikalischen Regeln strikt beherrschen, um Fehler zu vermeiden. Einer der häufigsten Fehler ist die „Verwendung eines undefinierten Namespace“. In diesem Artikel wird erläutert, was dieser Fehler bedeutet, warum er auftritt und wie er behoben werden kann. 1. Wozu dient ein undefinierter Namespace? In C++ sind Namespaces eine Möglichkeit, wiederverwendbaren Code zu organisieren, um ihn modular und lesbar zu halten. Sie können Namespaces verwenden, um Funktionen mit demselben Namen zu erstellen

Beispiel für neue Funktionen in PHP8: Wie kann man Namespaces und Codes verwenden, um die Codestruktur besser zu organisieren? Einführung: PHP8 ist eine wichtige Version der Programmiersprache PHP, die viele aufregende neue Funktionen und Verbesserungen einführt. Eine der wichtigsten Neuerungen sind Namespaces. Namespaces sind eine Möglichkeit, Ihren Code in einer besseren Struktur zu organisieren, die Konflikte zwischen Klassen, Funktionen und Konstanten mit demselben Namen vermeidet. In diesem Artikel schauen wir uns an, wie Sie Namespaces und Codes nutzen können, um Ihren PHP8-Code besser zu strukturieren

PHP ist eine äußerst flexible Programmiersprache mit einem breiten Anwendungsspektrum. Um Namenskonflikte zu vermeiden und die Lesbarkeit und Wartbarkeit des Codes zu verbessern, führt PHP in der PHP-Entwicklung das Konzept des Namespace ein. Namespaces helfen Entwicklern, denselben Klassen- oder Funktionsnamen im selben Projekt ohne Konflikte zu verwenden. In diesem Artikel werden die Konfiguration von Namespaces in PHP und allgemeine Anwendungsbeispiele vorgestellt. 1. So konfigurieren Sie den PHP-Namespace, indem Sie am Anfang der Datei den Namespace verwenden.

Neue Funktionen von PHP5.3: Verwendung von Namespaces zur Lösung von Klassennamenkonflikten Einführung: Während der Entwicklung von PHP treten mit zunehmender Größe und Komplexität von Projekten auch Klassennamenkonflikte auf. Um dieses Problem zu lösen, wurde in der PHP5.3-Version das Konzept des Namespace eingeführt. Namespaces bieten eine Möglichkeit, zusammengehörige Klassen, Funktionen und Konstanten zu organisieren, um Namenskonflikte zu vermeiden. In diesem Artikel werden das Konzept von PHP-Namespaces und die Verwendung von Namespaces zur Lösung von Klassennamenkonflikten anhand von Codebeispielen ausführlich vorgestellt.

So beheben Sie PHP-Namespace-Fehler und generieren entsprechende Fehlermeldungen. PHP ist eine weit verbreitete serverseitige Skriptsprache, die zur Entwicklung von Webanwendungen verwendet wird. In PHP ist Namespace (Namespace) ein Mechanismus zum Verwalten und Organisieren von Code, der Namenskonflikte vermeiden und die Lesbarkeit und Wartbarkeit des Codes verbessern kann. Allerdings führt die Komplexität der Namespace-Definition und -Nutzung manchmal zu Fehlern. In diesem Artikel werden einige Methoden zum Beheben von PHP-Namespace-Fehlern und zum Generieren entsprechender Fehlermeldungen vorgestellt. 1. Namensraum
