この記事では、主に JavaScript カプセル化のさまざまな記述方法を紹介します。利点、欠点、および使用シナリオをリストして、いくつかの JavaScript カプセル化形式を詳しく紹介します。JavaScript に興味のある方は、この記事を参照してください。世界では、書くことは魔法のような現象であり、あらゆる考え方に開かれています。外国人が書いたjsコンポーネントを見るたびに考え方や書き方がおかしいのですが、基本的に同じjs構造を持つコードは見たことがありません。今日はjsの書き方についてお話します。私も開発中にいくつかメソッドを書きました。パフォーマンスの面では、コードの構造やロジックが適切に記述されていないと、コンピューターの CPU による計算量が増加し、実行パフォーマンスが低下します。js の記述方法もパフォーマンスに大きく影響します。
通常、JS コンポーネントを作成する人は、
匿名関数を使用してオブジェクトをカプセル化し、外部とのクロージャ スコープを形成します。 (ここでは、js の継承とポリモーフィズムについては多くは言いません。上級プログラマーはこの知識を持っているはずです。Java 開発も行ったことがある人なら、この概念は馴染み深いでしょう。) 主にカプセル化に関する研究を行っています。カプセル化の重要な概念である
オブジェクト指向の概念、カプセル化の方法、カプセル化のパフォーマンスなどが含まれます。カプセル化 (個人的には、プログラミングの世界における最初の概念だと思います) は世界中のどこにでもあり、EXT と Prototype.js は JavaScript をカプセル化し、jQuery uI と jQuery mobile は jQuery をカプセル化し、Java の JDBC は spirng、Hibernate およびその他のフレームワークに組み込まれています。ここではいくつかの例を紹介しますが、1 つずつ紹介することはしません。 JavaScript のカプセル化の記述の話題に戻り、まず簡単な
function hello(){ var a = 'hello'; alert(a); }
js 関数を見てみましょう。ページに多くの機能が必要ない場合は、js を一目で理解するのが簡単です。 js の対話型操作の場合、これを使用できます。単純な方法ですが、JQuery を使用する場合は、次のように記述する必要があります
$(function(){ $('#id').click(function(){ alert('hello'); }) });
Node.js を使用する場合は、Node.js がHTTP モジュールの記述は次のとおりです
var http = require('http'); http.createServer(function(req,res){ res.writeHead(200,{'Content-Type':'text/html'}); res.write('<p>hello</p>'); }).listen(8080);
次に、記述をより深いレベルでカプセル化します。大量の JS 操作が発生した場合、それぞれの小さな関数だけでは満足できません。それらは共通のドメインに存在し、複数の関数が存在するためです。散在した記述方法は多くのバグ要因を引き起こしやすいため、規制する必要があります。 js の作成者は、匿名関数と呼ばれる関数を提供しています。その名の通り、匿名関数は実際の名前を持たない関数です。 function(){}(),(function(){})(),(function(){}()),new function(){},void function(){}();JQuery.js は匿名です関数のカプセル化。まず、最も一般的に使用される
(function(){ star.init = (function(name){ var e = new Editor(name, Data.toolbarData); }); })();
を見てみましょう。いくつかの JS コンポーネントを開発している場合は、まず
オブジェクトを作成し、このオブジェクトに プロパティとメソッド を与えることで、このオブジェクトが単独で動作できるようになります。他のオブジェクトと連携するvar klm = klm || {};
klm = (function(){
//第一个写法
klm.init = function(){
alert('hello');
}
//第二个写法
klm.browser = (function(ua){
var b = {
msie:/msie/.test(ua) && !/opera/.test(ua),
opera:/opera/.test(ua),
safari:/webkit/.test(ua) && !/chrome/.test(ua),
firefox:/firefox/.test(ua),
chrome:/chrome/.test(ua)
};
})(window.navigator.userAgent.toLowerCase());
//将其定义方法以接口方式返回给外界引用
return{
init: klm.init,
browser:klm.browser
}
})();
S 次に、この JS パッケージ化は私が気に入っている方法です
var myOpinion = myOpinion || {}; myOpinion.prototype={ init:function(obj,i){ alert('hello'); }, closeWindow:function(obj,d){ obj.click(function(){ d.hide(); }); } } $(function(){ var my = myOpinion.prototype; my.init($(".z-sidebar li em"),$("#contact")); $("#contact").add(my.closeWindow($(".z-sidebar li em"),$("#contact"))); });
このメソッドは、Prototype の継承を継承することで、各小さな操作を属性にカプセル化するもので、次のような操作イベントにバインドすることもできます。 as $("#contact").add(my.closeWindow()); これらは一度にカプセル化されます。
WinShow.create = function(c,body){ var _head = '<p><span>' + c.title + '</span></p>'; this.container.innerHTML = _head; return this.container; this.container.onclick = function(e){ alert('hello'); } }ここでは、HTML コードの一部を匿名関数の形式でカプセル化するための create 属性を作成し、クリック イベントをこの HTML コードにバインドします。 上記のいくつかの JS カプセル化形式をリストします。Xiaosheng はまだ研究中ですが、これらのタイプは同じ操作を実現できますが、記述方法が多少異なります。パフォーマンスについてより詳しい人は、コメントして連絡してください。 関連する推奨事項:
JavaScript が URL を JSON 形式に解析する 2 つの方法
配列から重複要素を削除するための 5 つの JavaScript アルゴリズム
JavaScript 関数のスロットルと手ぶれ補正デバウンスの詳細な説明
以上がJavaScriptカプセル化のさまざまな書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
