-5

時々私たちは書きます

window.COB = window.COB || {};
window.COB.HostWebApp = function() { ... }();

そして時々私たちは書きます

window.COB.AppHelper = {

        getUrl: function (absoluteUrl) { ... },
};

違いはなんですか?この基本的で重要なことを理解するには、何をどこで読むことができますか?

4

2 に答える 2

1

Javascript にはクラスはなく、オブジェクトのみです。ただし、関数を使用して、いくつかの上品なことを行うことができます。オブジェクトを次の形式で考えることができます。

var name = {};

インスタンス化する必要のない一種の「静的」クラスとして

 var name = function(){}

使用する前にインスタンス化する必要があるクラスとして。

これは良い読み物です: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript

于 2013-06-25T14:38:30.133 に答える
1

名前空間として使用するオブジェクト リテラルを定義しています。場合によっては、関数とオブジェクトを 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 が wi​​ndow に存在するかどうかを確認し、存在しない場合は作成されます。

後でコードをいくつかのファイルに整理して、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が定義されていないため、エラーがスローされます。最初に定義する必要があります。

于 2013-06-25T14:39:14.173 に答える