#JavaScript では、グローバル変数によって名前の競合が頻繁に発生します。場合によっては、変数の書き換えも想像した順序と異なることがあります。そのため、
グローバル変数名の競合を回避するには、
名前空間を作成することが最適な解決策となります。
1. クロージャ (Closure) とオブジェクトによる実装
すべての変数とメソッドをクロージャ内で宣言し、JSON を渡します。 Object
パブリック インターフェイスを返します:
var NameSpace = NameSpace || {}; NameSpace.Hello = (function() { //待返回的公有对象 var self = {}; //私有变量或方法 var name = 'world'; //公有方法或变量 self.sayHello = function(_name) { return 'Hello ' + (_name || name); } ; //返回的公有对象 return self; }());
2. JSON オブジェクトを通じてオブジェクトを作成します。コードは次のとおりです:
var NameSpace = NameSpace || {}; NameSpace.Hello = { name: 'world' , sayHello: function(_name) { return 'Hello ' + (_name || this.name); } };
3. 関数を通じて作成: (より複雑)
これは、 関数# を宣言することによる、比較的一般的な記述方法です。 ## が実装され、関数に初期変数を設定し、<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">var NameSpace = NameSpace || {};
/* Function */
NameSpace.Hello = function() {
this.name = &#39;world&#39;;
};
NameSpace.Hello.prototype.sayHello = function(_name) {
return &#39;Hello &#39; + (_name || this.name);
};
var hello = new NameSpace.Hello();
hello.sayHello();</pre><div class="contentsignin">ログイン後にコピー</div></div>
4 のようにパブリック メソッドを
に書き込みます。関数を通じて作成します: (もっと簡潔に)var NameSpace = NameSpace || {};
NameSpace.Hello = new function() {
var self = this;
var name = 'world';
self.sayHello = function(_name) {
return 'Hello ' + (_name || name);
};
};
以上がJavaScript で名前空間を作成するさまざまな方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。