网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑。

Javascript模块化编程,已经成为一个迫切的需求。理想情">
ホームページ ウェブフロントエンド jsチュートリアル Javascriptモジュラープログラミング(1)モジュール作成のベストプラクティス_基礎知識

Javascriptモジュラープログラミング(1)モジュール作成のベストプラクティス_基礎知識

May 16, 2016 pm 05:43 PM
モジュール式プログラミング

Web サイトが徐々に「インターネット アプリケーション」になるにつれて、Web ページに埋め込まれた Javascript コードはより大きく、より複雑になります。
Javascriptモジュラープログラミング(1)モジュール作成のベストプラクティス_基礎知識
Web ページはますますデスクトップ プログラムに似てきており、チームの分業とコラボレーション、進捗管理、単体テストなどが必要になります...開発者はビジネスを管理するためにソフトウェア エンジニアリング手法を使用する必要がありますWeb ページのロジック。

JavaScript のモジュール型プログラミングが緊急のニーズになっています。理想的には、開発者はコア ビジネス ロジックを実装するだけで済み、他のモジュールは他の人がロードできるようになります。

ただし、JavaScript はモジュール型プログラミング言語ではなく、「モジュール」はおろか「クラス」もサポートしません。 (開発中の ECMAScript 標準の第 6 版では、「クラス」と「モジュール」が正式にサポートされる予定ですが、実用化には長い時間がかかります。)

JavaScript コミュニティは、既存の環境を改善するために多大な努力を払ってきました。 実行環境では、「モジュール」の効果が実現されます。この記事では、「JavaScript モジュール型プログラミング」の現在のベスト プラクティスを要約し、それらを実践する方法について説明します。これは入門チュートリアルではありませんが、JavaScript の基本的な構文を少し理解していれば理解できます。
Javascriptモジュラープログラミング(1)モジュール作成のベストプラクティス_基礎知識
1. 原文
モジュールとは、特定の機能を実装するためのメソッドのセットです。
さまざまな関数 (および状態を記録する変数) を単純に組み合わせる限り、それはモジュールになります。

コードをコピー コードは次のとおりです。

Function m1(){
/ /.. .
}
Function m2(){
//...
}

上記の関数 m1() と m2() はモジュールを構成します。使用する場合は直接呼び出してください。
このアプローチの欠点は明らかです。グローバル変数を「汚染」し、変数名が他のモジュールと競合しないという保証がなく、モジュールのメンバー間に直接の関係がありません。
2. オブジェクトの記述
上記の欠点を解決するために、モジュールをオブジェクトとして記述し、すべてのモジュール メンバーをこのオブジェクトに配置することができます。
コードをコピー コードは次のとおりです。

var module1 = new Object({
_count: 0,
m1 : function (){
//...
},
m2 : function (){
//...
}
}) ;

上記の関数 m1() と m2() は module1 オブジェクトにカプセル化されています。使用すると、このオブジェクトのプロパティが呼び出されます。
コードをコピーします コードは次のとおりです。

module1.m1();
ただし、この書き方ではモジュールのメンバーがすべて公開されてしまい、内部状態が外部で上書きされる可能性があります。たとえば、外部コードは内部カウンターの値を直接変更できます。

コードをコピーします コードは次のとおりです。
module1._count = 5;

3. 即時実行関数の書き方
「即時呼び出し関数式 (IIFE)」を使用すると、プライベートメンバーを公開しないという目的を達成できます。

var module1 = (function(){
var _count = 0;
var m1 = function(){
//...
};
return {
m1 : m1,
m2 : m2
};
})(); 内部 _count 変数。




コードをコピー

コードは次のとおりです。
console.info(module1._count); //未定義
Module1はJavaScriptモジュールの基本的な書き方です。次に、この書き込みメソッドを処理していきます。
4. 増幅モード
モジュールが非常に大きく、複数の部分に分割する必要がある場合、または 1 つのモジュールが別のモジュールを継承する必要がある場合は、「拡張モード」を使用する必要があります。
コードをコピー コードは次のとおりです。

var module1 = (function (mod){
mod.m3 = function () {
//...
}
return mod;

上記コードは module1 です。モジュールは新しいメソッド m3() を追加し、新しい module1 モジュールを返します。

5. Loose augmentation モード (Loose augmentation)
ブラウザ環境では、通常、モジュールの各部分がインターネットから取得されるため、どの部分が読み込まれるかがわからない場合があります。初め。前項の記述方法を採用した場合、最初に実行される部分で存在しない空のオブジェクトを読み込む可能性があり、その場合は「拡張モード」を使用する必要があります。

コードをコピー コードは次のとおりです。
var module1 = ( function (mod){
//...
return mod; 「即時実行関数」のパラメータは空のオブジェクトでも構いません。

6. グローバル変数の入力
独立性はモジュールの重要な機能です。モジュール内のプログラムの他の部分と直接対話しないことが最善です。
モジュール内でグローバル変数を呼び出すには、他の変数を明示的にモジュールに入力する必要があります。


コードをコピー
コードは次のとおりです。 var module1 = (function ($, YAHOO) ) { //... })(jQuery, YAHOO);

上記の module1 モジュールは jQuery ライブラリと YUI ライブラリを使用する必要があるため、これら 2 つのライブラリ (実際には 2 つのモジュール) をパラメータとして入力し、「module1」と入力します。これにより、モジュールの独立性が確保されるだけでなく、モジュール間の依存関係も明確になります。

このシリーズの第 2 部では、ブラウザ環境でさまざまなモジュールを整理し、モジュール間の依存関係を管理する方法について説明します。
(終了)
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

8見事なjQueryページレイアウトプラグイン 8見事なjQueryページレイアウトプラグイン Mar 06, 2025 am 12:48 AM

楽なWebページレイアウトのためにjQueryを活用する:8本質的なプラグイン jQueryは、Webページのレイアウトを大幅に簡素化します。 この記事では、プロセスを合理化する8つの強力なjQueryプラグイン、特に手動のウェブサイトの作成に役立ちます

独自のAjax Webアプリケーションを構築します 独自のAjax Webアプリケーションを構築します Mar 09, 2025 am 12:11 AM

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

10 jQueryの楽しみとゲームプラグイン 10 jQueryの楽しみとゲームプラグイン Mar 08, 2025 am 12:42 AM

10の楽しいjQueryゲームプラグインして、あなたのウェブサイトをより魅力的にし、ユーザーの粘着性を高めます! Flashは依然としてカジュアルなWebゲームを開発するのに最適なソフトウェアですが、jQueryは驚くべき効果を生み出すこともできます。また、純粋なアクションフラッシュゲームに匹敵するものではありませんが、場合によってはブラウザで予期せぬ楽しみもできます。 jquery tic toeゲーム ゲームプログラミングの「Hello World」には、JQueryバージョンがあります。 ソースコード jQueryクレイジーワードコンポジションゲーム これは空白のゲームであり、単語の文脈を知らないために奇妙な結果を生み出すことができます。 ソースコード jquery鉱山の掃引ゲーム

独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? 独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? Mar 18, 2025 pm 03:12 PM

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

jQuery Parallaxチュートリアル - アニメーションヘッダーの背景 jQuery Parallaxチュートリアル - アニメーションヘッダーの背景 Mar 08, 2025 am 12:39 AM

このチュートリアルでは、jQueryを使用して魅惑的な視差の背景効果を作成する方法を示しています。 見事な視覚的な深さを作成するレイヤー画像を備えたヘッダーバナーを構築します。 更新されたプラグインは、jQuery 1.6.4以降で動作します。 ダウンロードしてください

Ajaxを使用して動的にボックスコンテンツをロードします Ajaxを使用して動的にボックスコンテンツをロードします Mar 06, 2025 am 01:07 AM

このチュートリアルでは、Ajaxを介してロードされた動的なページボックスの作成を示しており、フルページのリロードなしでインスタントリフレッシュを可能にします。 JQueryとJavaScriptを活用します。カスタムのFacebookスタイルのコンテンツボックスローダーと考えてください。 重要な概念: ajaxとjquery

JavaScript用のクッキーレスセッションライブラリを作成する方法 JavaScript用のクッキーレスセッションライブラリを作成する方法 Mar 06, 2025 am 01:18 AM

このJavaScriptライブラリは、Cookieに依存せずにセッションデータを管理するためにWindow.nameプロパティを活用します。 ブラウザ全体でセッション変数を保存および取得するための堅牢なソリューションを提供します。 ライブラリは、セッションの3つのコア方法を提供します

See all articles