0

次のことを行うのが良い習慣であるかどうかについて、私は少し困惑しています。

基本関数と変数を含めるために使用するグローバルオブジェクトリテラルまたは名前空間があります。

この中に、特定のページのすべての変数と関数を含むPageプロパティがあります。Pageプロパティ内のプロパティに要素IDへの参照も含まれています。これは、ASP.NETサイトがあり、.NETで生成されたクライアントIDを保存して、jQueryで参照できるようにする必要があるためです。

Base
    Base.Page
        Base.Page.Elements

私の問題は、次のようなページ関数内のこれらのリテラルに「ショートカット」変数を割り当てていることに気付くということです。

Base.Page.DoThisStuff = function () {
    var p = Base.Page;
    var pe = Base.Page.Elements;

    //Function Stuff Here

    p = null;
    pe = null;
}

私の質問は次のとおりです。マスターページに「グローバル」変数を作成することをお勧めします。たとえば、var _p = Base.Page;これは恐ろしくて悪い習慣であり、上記のように続行する必要がありますか?

(私の名前空間には、上記のような短い名前はありません。これらは説明のためだけのものです。

ASP.NETまたはjQueryは、この質問に直接関係しているとは思わないため、タグを付けていません。)

4

2 に答える 2

2

これは本当にプログラミングスタイルの問題のように思えますが、それぞれの答えは異なります。

私は変数を可能な限り小さなスコープに保つので、グローバル変数のショートカットのアイデアよりも上記のソリューションを好みます。

于 2011-05-13T12:43:45.340 に答える
0

一般に、グローバルな「フットプリント」を制限することをお勧めします。これは主に、別のjsがグローバルの一部を再定義するのを避けるためです。識別子が単純であるほど、他の誰かがそれを使用する可能性が高いと言えます。

私がextjsで見たのは、良い妥協案だと思います。それは、Ext名前空間のすぐ下に省略形を定義するということです。たとえば、コンポーネントを取得すると、Ext.getCmpメソッドが作成されます。これは、正しく思い出せば、Ext.ComponentMgr.getへのショートカットです。

したがって、Base.Pageを保持し、ページ要素に頻繁にアクセスする必要がある場合はBase.peを保持します。

于 2011-05-13T12:46:37.377 に答える