目次
まえがき
シングルトンパターンの概念
シングルトン モードのインスタンス
1.デモの表示
2. コードの表示
ホームページ ウェブフロントエンド jsチュートリアル JavaScript シングルトン パターンの概念とコード例

JavaScript シングルトン パターンの概念とコード例

Mar 04, 2017 pm 03:13 PM
javascript

まえがき

他のプログラミング言語と同様に、JavaScript にもシングルトン モード、プロキシ モード、オブザーバー モードなどの多くの 設計パターン があります。JavaScript 設計パターンを上手に使用すると、コード ロジックがより明確になり、保守が容易になります。そしてリファクタリングします。

この記事では、JavaScript モードのより一般的で実用的なモードであるシングルトン モードを主に概念と例に分けて紹介します。例を紹介しながら、コード内の追加の知識ポイントも説明します。

シングルトンパターンの概念

まずシングルトンパターンとは何でしょうか?これは次のように理解できます。シングルトン パターンは、クラスがインスタンスを 1 つだけ持ち、グローバル アクセス ポイントを提供することを保証することを目的としています。

シングルトンの概念をまだ理解していない人もいるかもしれませんが、実際の例をいくつか想像してみてください。たとえば、アカウントを登録する際、登録したアカウントがすでに存在する場合、「アカウントはすでに存在します。このアカウントを使用してログインしますか?」と表示され、キャンセルしない限り同じアカウントを再度作成することはできません。元のアカウント。これは、シングルトン パターンを鮮明に具体化したものです。

同様の例は、Web ページ上のログイン ポップアップ ボックスです。ログイン ボタンを何度クリックしても、インターフェイスには常に 1 つのログイン ポップアップ ボックスのみが表示され、2 つ目のログイン ポップアップ ボックスは作成できません。 。

この記事では、ログイン ポップアップ ボックスを例としてシングルトン モードの使用方法を紹介します。

シングルトン モードのインスタンス

1.デモの表示

デモのアドレスは次のとおりです: ポップアップ ボックスの例

2. コードの表示

シングルトン モードのポップアップ ボックス インスタンスを構築するコードは、人によって書き方が異なる場合があります。ただし、目的は同じです。世界的にユニークでアクセス可能なポップアップ ボックスを構築することです。次に、この例を段階的に実装していきます。

(1) DOM オブジェクトを取得します

var $ = function(id) {
    return typeof id === 'string' ? document.getElementById(id) : id; 
};
ログイン後にコピー

まず、後で DOM に対する操作を容易にするために、関数型プログラミングの原理を使用して、ターゲット ID を取得する要素オブジェクトのメソッドをカプセル化し、直接use $(id) を取得できます。

(2) ポップアップフレームのコンストラクター

var Modal = function(id, html) {
    this.html = html;
    this.id = id;
    this.open = false;
};
ログイン後にコピー

ここでは、ポップアップフレームのコンストラクターとして Modal を宣言し、その中に public 属性 html、id、open を定義します。 HTML はポップアップ ボックス内のコンテンツを定義するために使用され、id はポップアップ ボックスの ID 名を定義するために使用され、open はポップアップ ボックスが開いているかどうかを判断するために使用されます。

(3) openメソッド

Modal.prototype.create = function() {
    if (!this.open) {
        var modal = document.createElement('p');

        modal.innerHTML = this.html;
        modal.id = this.id;
        document.body.appendChild(modal);

        setTimeout(function() {
            modal.classList.add('show');
        }, 0);

        this.open = true;
    }
};
ログイン後にコピー

Modalのプロトタイプチェーンにcreateメソッドを定義し、ポップアップボックスを作成してDOMに挿入し、クラス「show」のアニメーションを追加します。ポップアップボックス。ここでは classList について簡単に紹介します:

classList は要素クラスを操作するための className よりも便利な属性ですが、互換性の点で IE10 より前のバージョンとは互換性がありません:

提供するクラス操作メソッドは類似しています主に jQuery の addClass() と同様に、要素に 1 つ以上のクラス名を追加する

  • add(class1, class2, …) があります。

  • remove(class1, class2, …)要素から 1 つ以上のクラス名を削除します。クラス名。jQuery の RemoveClass() と同様です

  • contains(class) は、jQuery の hasClass() と同様、指定されたクラス名が存在するかどうかを判断します

ここでは add を使用します。モーダルに show クラスを追加するメソッド。

(4) close メソッド

Modal.prototype.delete = function() {
    if (this.open) {
        var modal = $(this.id);

        modal.classList.add('hide'); 
        setTimeout(function() {
            document.body.removeChild(modal);
        }, 200);

        this.open = false;
    }
};
ログイン後にコピー

open メソッドを定義した後、ポップアップ ボックスを閉じるメソッドを定義し、その中のポップアップ ボックス オブジェクトに非表示のようなアニメーション効果を追加し、最後に削除しますページからのポップアップ ボックス オブジェクト。

(5) インスタンスを作成します

var createIntance = (function() {
    var instance;
    return function() {
        return instance || (instance = new Modal('modal', '这是一个弹框'))
    }
})();
ログイン後にコピー

これは、シングルトン パターンの実装の重要な部分です。知識ポイントを分析しましょう:

  1. closure を使用してインスタンスのプライベート変数をカプセル化し、関数を返します

  2. インスタンスが存在しない場合は || 構文を使用して、後者のインスタンス化 Modal メソッドを実行し、インスタンスが 1 つだけ存在することを確認します。このインスタンスの は、プロキシ モードの一部として理解することもできます。

(6) ボタン操作

var operate = {
    setModal: null,
    open: function() {
        this.setModal = createIntance();
        this.setModal.create();
    },
    delete: function() {
        this.setModal ? this.setModal.delete() : '';
    }
};
ログイン後にコピー

ここでは、ボタン操作を Operate オブジェクトに入れて、開閉操作がこれを通じてインスタンス setModal を取得できるようにします。

(7) イベントのバインド

$('open').onclick = function() {
    operate.open();
};

$('delete').onclick = function() {
    operate.delete();
};
ログイン後にコピー

最後に、open メソッドと delete メソッドを 2 つのボタンにバインドします。この時点で、シングルトン モードを使用して実装したポップアップ デモが実装されます。 完全なコードをご覧ください: 完全なコード

結論

上記は、JavaScript シングルトン モードの概念とコード例の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

メタバースの概念は何を意味しますか? メタバースの概念とは何ですか? メタバースの概念は何を意味しますか? メタバースの概念とは何ですか? Feb 22, 2024 pm 03:55 PM

メタバースは、テクノロジーを使用して現実世界をマッピングし、相互作用する幻想的な世界です。分析1 メタバース[Metaverse]は、テクノロジー手法を駆使して現実世界と連携・創造し、地図化・相互作用する幻想世界であり、最新の社会開発システムを備えたデータ居住空間です。 2 次元の世界は本質的には現実世界の仮想テクノロジーおよびデジタル プロセスであり、コンテンツ制作、経済システム、顧客エクスペリエンス、および物理世界のコンテンツの多くの変革が必要です。 3 ただし、メタバースの発展傾向は緩やかであり、共有インフラストラクチャ、標準、プロトコルのサポートによる多くのツールとプラットフォームの継続的な組み合わせと進化によって最終的に形成されます。補足: メタバースは何で構成されていますか? 1 メタバースはメタとバースで構成され、メタは超越、V は

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

Spring MVC の主要な概念をマスターする: これらの重要な機能を理解する Spring MVC の主要な概念をマスターする: これらの重要な機能を理解する Dec 29, 2023 am 09:14 AM

SpringMVC の主要な機能を理解する: これらの重要な概念を習得するには、特定のコード例が必要です。 SpringMVC は、開発者が Model-View-Controller (MVC) アーキテクチャ パターンを通じて柔軟でスケーラブルな構造を構築するのに役立つ Java ベースの Web アプリケーション開発フレームワークです。ウェブアプリケーション。 SpringMVC の主要な機能を理解して習得すると、Web アプリケーションをより効率的に開発および管理できるようになります。この記事では、SpringMVC の重要な概念をいくつか紹介します。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

Gunicorn の基本と機能について詳しく知る Gunicorn の基本と機能について詳しく知る Jan 03, 2024 am 08:41 AM

Gunicorn の基本概念と機能 Gunicorn は、Python Web アプリケーションで WSGI サーバーを実行するためのツールです。 WSGI (Web Server Gateway Interface) は Python 言語で定義された仕様で、Web サーバーと Web アプリケーション間の通信インターフェイスを定義するために使用されます。 Gunicorn では、WSGI 仕様を実装することで、Python Web アプリケーションを運用環境にデプロイして実行できるようになります。ガニコーンの機能は次のとおりです。

See all articles