JavaScript の名前の間隔に問題があるようです。
JavaScriptobjects
を別々のファイルに分けました。
各ファイルは名前空間定義で始まります:
var MySystem = MySystem || {};
オブジェクトを含めると、ファイルに含まれるオブジェクトのいくつかのメソッドが呼び出されます-指定されたオブジェクトが存在しないという TypeError が返されます。
私が抱えている問題の例:
ファイル 1 Url.js (最初に html ドキュメントに含まれています):
var MySystem = MySystem || {};
MySystem.Url = {
objHelper : MySystem.Helper,
init : function() {
"use strict"
if (this.objHelper.isEmpty('string')) {
throw new Error('The string is empty');
}
}
}
ファイル 2 Helper.js (html ドキュメントの 2 番目に含まれています):
var MySystem = MySystem || {};
MySystem.Helper = {
isEmpty : function(thisValue) {
"use strict"
return (
typeof thisValue === 'undefined' ||
thisValue === false ||
thisValue === null ||
thisValue === ''
);
}
}
を使用して呼び出すと、MySystem.Url.init();
次のようになります。
TypeError: this.objHelper is undefined
if (this.objHelper.isEmpty('string')) {
含まれているファイルの順序を逆にすると、すべて正常に動作します。
これは明らかに非常に単純な例ですが、私のシステムはさらに多くのもので構成されてobjects
おり、それらはすべて独自の別のファイルにあります。
この問題の最善の回避策は何ですか?