時々私たちは書きます
window.COB = window.COB || {};
window.COB.HostWebApp = function() { ... }();
そして時々私たちは書きます
window.COB.AppHelper = {
getUrl: function (absoluteUrl) { ... },
};
違いはなんですか?この基本的で重要なことを理解するには、何をどこで読むことができますか?
時々私たちは書きます
window.COB = window.COB || {};
window.COB.HostWebApp = function() { ... }();
そして時々私たちは書きます
window.COB.AppHelper = {
getUrl: function (absoluteUrl) { ... },
};
違いはなんですか?この基本的で重要なことを理解するには、何をどこで読むことができますか?
Javascript にはクラスはなく、オブジェクトのみです。ただし、関数を使用して、いくつかの上品なことを行うことができます。オブジェクトを次の形式で考えることができます。
var name = {};
インスタンス化する必要のない一種の「静的」クラスとして
var name = function(){}
使用する前にインスタンス化する必要があるクラスとして。
これは良い読み物です: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript
名前空間として使用するオブジェクト リテラルを定義しています。場合によっては、関数とオブジェクトを URL のように逆に論理グループにグループ化したいことがあります。例えば:
com.myCompany.myApplication.Dom
com.myCompany.myApplication.Validators
Dom は dom を行い、Validators は検証を行います。ただ定義することはできません
com.myCompany.myApplication.Dom
window.com は定義されておらず、window に myCompany を追加できないため、コードでwindow.COB = window.COB || {};
COB が window に存在するかどうかを確認し、存在しない場合は作成されます。
後でコードをいくつかのファイルに整理して、Dom を Dom.js (Java のように) に入れることができます。com.myCompany.myApplication.Dom を作成する場合は、オブジェクトがまだ作成されていないかどうかを段階的に確認する必要があります。
com=com||{}; //if com doesn't exist create it
com.myCompany=com.myCompany||{};//if com.myCompany doesn't exist create it
//... and so on
これは、com.myCompany が Validators.js またはその他の js ファイルで既に宣言されている可能性があり、上書きしたくないためです。
コード:
window.COB.AppHelper = {
getUrl: function (absoluteUrl) { ... },
};
ウィンドウでCOBが定義されていないため、エラーがスローされます。最初に定義する必要があります。