検索
ホームページウェブフロントエンドjsチュートリアルJavaScript名前空間の使い方入門_JavaScriptスキル

Java と C# を使用したことのある学生は、複雑なシステムでは、プログラミング仕様により、言語によって提供され、アーキテクチャによって事前定義された多くの関数やオブジェクトが存在します。実用的な意味を持つ名前を要求すると、同じ名前による誤った呼び出しが発生することは避けられません。しかし、名前空間を使用すると、関数とオブジェクトを分類して整理するだけでなく、分離を形成することもできます。重複した名前の問題を解決します。

JavaScript の使用はそれほど快適ではありません。JavaScript には関数スコープしかありません。重複した名前によって引き起こされるエラーは、デバッグや解決が困難になることがあります。

簡単な例

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





test2();
//....
}

test2(){
functionalert('test2')



この例では、ブラウザによってパフォーマンスが異なります。IE はスタック オーバー フローを報告し、Firefox は停止します。 。 。とにかく、これは非常に単純なエラーです。このように、test2 関数は、alert 関数内で呼び出されます。ループ内で呼び出されます。これを読んだら誰が間違いを犯すかわかりませんが、カスタム メソッドが close で呼び出されると (これはよく起こります)、外部ファイル関数が内部で呼び出されます。 、関数がウィンドウの close メソッドを呼び出すと、エラーは大幅に隠蔽されます。

単純な名前空間

JavaScript にはファイル スコープがないため、さまざまな関数がさまざまなファイルに散在しているか、さまざまな人によって記述されているため、名前が重複する可能性が大幅に高くなります。十分に注意するだけで十分でしょうか?必ずしもそうとは限りませんが、例えば継承がよく使われるので、思いがけずEcmaScript5にextend関数が追加されたり、ネームスペースの必要性が反映されたりすることもあります。

JavaScript には関数スコープがあり、これを使用してカスタム関数を関数本体に記述することができるため、関数内の変数、オブジェクト、関数は名前空間内にある場合と同様に外部から分離されます。


alert=function(){
console.log('test');
}
}




このようにして、カスタマイズされたアラート方法はウィンドウアラートと競合しません。
単純な進化

これは可能ですが、問題があります。最大の問題は、呼び出し方法が複雑で見苦しいことです。オブジェクトは呼び出されるたびにインスタンス化され、その後そのメソッドを呼び出す必要があります。自動インスタンス化を実現するには、コードを変更するだけです。

コードをコピー

コードは次のとおりです:




//関数本体
})();

このように書くと、xxx 関数を定義すると自動的に実行されるように見えますが、実は上記の書き方は次のように分解できます。これ


コードをコピー コードは次のとおりです:function xxx(){
//関数本体
}

xxx();


は、関数を定義し、それを角かっこ構文を使用して呼び出すことです。角かっこを使用して呼び出せるのは式のみであるため、関数定義の外側のかっこの層は関数宣言を関数定義式に変換するだけです。これらのモンスターを理解した後、上記のコードは簡単です。カスタム名前空間関数の最後にこれをウィンドウの NS 属性に割り当て、呼び出すときに NS.xx を直接使用します。見た目がずっと良くなりました。

美しくしてください

上記の書き方は良さそうですが、関数名の名前空間が冗長っぽいので美化できます

コードをコピー コードは次のとおりです。(function (){
this .alert= function(){
console.log('test');


はすぐに実行される匿名関数になります。これは少し美化されていますが、明らかにインスタンス化された関数です。なぜプロトタイプのプロトタイプを記述するのですか?無名関数? 。 。 、まだ頭を使う必要があります




コードをコピー

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

(function(){ var _NS=function (){ } _NS.prototype.alert=function(){ console.log('test');
}
window.NS=new _NS() ;
})();




いくつかの便利な関数を作成します


querySelector と querySelectorAll は、W3C によって提供される新しいクエリ インターフェイスですが、名前が非常に長いので、自分で簡単なインターフェイスを作成しました。 innerHTML 属性もよく使用される jQuery HTML メソッド
の簡易バージョンを作成しました。

コードをコピー

コードは次のとおりです:


(function () {
var _NS = function () {

}

_NS.prototype.select = function (selector,context) {
var context = context || document;
return context.querySelectorAll(selector);
}

_NS.prototype.isArrayLike=function(obj){
if(obj instanceof Array){
return true;
}

var length=obj.length;
if ( obj.nodeType === 1 && length ) {
return true;
}
return false;
}

_NS.prototype.html = function (obj,value) {
var isArray=this.isArrayLike(obj), i=0;

if (typeof value == 'string') {
if (!isArray) {
obj.innerHTML = value;
} else {
var length = obj.length;
while (i obj[i].innerHTML = value;
i = 1;
}
}
} else {
if (!isArray) {
return obj.innerHTML;
} else {
return obj[0].innerHTML;
}
}
}

window.NS = new _NS();
})();

このような名前空間を備えたシンプルな JavaScript ライブラリが作成されています。名前の競合を心配する必要はありませんが、jQuery を使用するフロントエンドの学生は皆、使いやすいです。どうやって?次に何が起こるかを知りたい場合は、次回説明を聞いてください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

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

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

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

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

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

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

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

JavaScriptの進化:現在の傾向と将来の見通しJavaScriptの進化:現在の傾向と将来の見通しApr 10, 2025 am 09:33 AM

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

javascriptの分解:それが何をするのか、なぜそれが重要なのかjavascriptの分解:それが何をするのか、なぜそれが重要なのかApr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

pythonまたはjavascriptの方がいいですか?pythonまたはjavascriptの方がいいですか?Apr 06, 2025 am 12:14 AM

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

JavaScriptをインストールするにはどうすればよいですか?JavaScriptをインストールするにはどうすればよいですか?Apr 05, 2025 am 12:16 AM

JavaScriptは、最新のブラウザにすでに組み込まれているため、インストールを必要としません。開始するには、テキストエディターとブラウザのみが必要です。 1)ブラウザ環境では、タグを介してHTMLファイルを埋め込んで実行します。 2)node.js環境では、node.jsをダウンロードしてインストールした後、コマンドラインを介してJavaScriptファイルを実行します。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Safe Exam Browser

Safe Exam Browser

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