Douglas Crockford は、このルールを実装する便利なシングルトン パターンを教えてくれました。彼のパターンは YUI ベースのアプリケーションにとって有益であると思います。ダグラス氏はこれをモジュール パターンと呼んでいます。これは次のように動作します。
ネームスペース オブジェクトを作成します。 YUI を使用している場合は、YAHOO.namespace() メソッドを使用できます。 これにより、空の myProject オブジェクトが割り当てられます。 YAHOO のメンバー (myProject がすでに存在する場合、上書きされません)。これで、YAHOO.myProject のメンバーの追加を開始できます。
匿名関数の戻り値を名前空間オブジェクトに割り当てます。
YAHOO.myProject.myModule = function () {
return {
myPublicProperty: "私は YAHOO.myProject.myModule.myPublicProperty と呼ばれます。アクセスされました。 ";
myPublicMethod: function () {
YAHOO.log("YAHOO.myProject.myModule.myPublicMethod としてアクセスされました。");
}
};
}( ); // この括弧により、匿名関数が実行され、
が返されます。最後の行の右中括弧の後に括弧 () が続いていることに注意してください。この表記により、匿名関数が即座に実行され、 myPublicProperty と myPublicMethod を含むオブジェクトが返されます。この匿名関数が返されるとすぐに、返されたオブジェクトは YAHOO.myProject.myModule としてアクセスされます。
匿名関数では、return ステートメントの前に「プライベート」メソッドと変数を追加します。ここまでは、myPublicProperty と myPublicMethod を YAHOO.myProject.myModule に直接割り当てただけです。さらに、このパターンでは、return ステートメントの前にコードを配置すると、実用性が高まります。
YAHOO.myProject.myModule = function () {
//「プライベート」変数:
var myPrivateVar = "YAHOO.myProject.myModule 内でのみアクセスできます。";メソッド:
var myPrivateMethod = function () {
YAHOO.log("YAHOO.myProject.myModule 内でのみアクセスできます。")
}
return {
myPublicProperty: "YAHOO.myProject.myModule.myPublicProperty としてアクセスできます。"
myPublicMethod: function () {
YAHOO.log("YAHOO.myProject.myModule.myPublicMethod としてアクセスできます。" );
//myProject ではプライベート変数とメソッドにアクセスできます
YAHOO.log(myPrivateVar);
YAHOO.log(myPrivateMethod())
//myPublicMethod のネイティブ スコープは myProject です。 「this」を使用して公開メンバーにアクセスできます。
YAHOO.log(this.myPublicProperty);
}
};
}(); 上記のコードでは、匿名関数から 2 つのメンバーを持つオブジェクトを返します。 YAHOO.myProject.myModule 内では、それぞれ this.myPublicProperty と this.myPublicMethod を使用してアクセスできます。 YAHOO.myProject.myModule の外部では、YAHOO.myProject.myModule.myPublicProperty および YAHOO.myProject.myModule.myPublicMethod を使用してパブリック メンバーにアクセスできます。
プライベート変数 myPrivateProperty および myPrivateMethod には、匿名関数自体、または返されたオブジェクトのメンバーのみがアクセスできます。匿名関数は実行されてすぐに終了しますが、クロージャの力によって依然として保持されます。これは、関数に対してローカルな変数が関数が戻った後も保持されるというルールです。 YAHOO.myProject.myModule が必要とする限り、2 つのプライベート変数は破棄されません。
このパターンを練習してください。このパターンの一般的な適用例を見てみましょう。リストがあり、リスト上のいくつかの項目をドラッグできるとします。ドラッグが適用される項目にはドラッグ CSS クラスがあります。
- 1 点
- 2 点
- 3 点items 項目
これは、意図的に詳細に書かれた単純な例です。このようにすれば、間違いなくよりコンパクトに書くことができます。このパターンは、プロジェクトがより複雑になり、API が増加するにつれて、適切に拡張できます。このようにして、グローバル名前空間を回避し、外部からアクセス可能な API メソッドを提供し、保護されたまたは「プライベート」データとメソッドをサポートします。
<script>src="http://yui.yahooapis.com/2.2.2/build/utilities/utilities.js"></script>[1]原文: 「JavaScript モジュール パターン」。これは YUI ブログにあります。場所によっては公開されていない場合があります。英語の転載を検索するか、検索エンジンのキャッシュを使用してご覧ください。
[2] 「A JavaScript Module Pattern - JavaScript のモジュール パターン」 これは他の人の翻訳ですが、非常に読みにくいと感じます。理由の 1 つは、もちろん主な理由ですが、この記事が YUI を学習するための最も基本的な記事であり、YUI モジュール モデル全体がこれに基づいているためです。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ホットトピック









