#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. 関数を通じて作成: (より複雑)
これは、関数# を宣言することによる、比較的一般的な記述方法です。 ## が実装され、関数に初期変数を設定し、var NameSpace = NameSpace || {}; /* Function */ NameSpace.Hello = function() { this.name = 'world'; }; NameSpace.Hello.prototype.sayHello = function(_name) { return 'Hello ' + (_name || this.name); }; var hello = new NameSpace.Hello(); hello.sayHello();
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 サイトの他の関連記事を参照してください。