1

jQuery の構造と同様に、すべてのコードを NS に配置しました。NS に対してグローバルな変数がいくつかあります。これを囲み、次のようにアクセスできるようにします -> Global.variable_name

以下は私が行った方法です。これは良い習慣ですか?私が電話する必要がない場合にこれを行うより良い方法はありますかvar Global = new GlobalMaker()

グローバル定数にはすべて大文字を使用します。

var NS = ( function ( window, undefined ) { /* all my code is here */ } )( )

/** (including this code)
 *GlobalMaker
 */

var GlobalMaker = function()
{
    this.tag_array = [];
    this.current_tag;
    this.validate_input_on;
    this.JSON_ON = 1;                              // selector between JSON and LON
    this.GATEWAY = 'class.ControlEntry.php';       // for Ajax calls
    this.PICTURES = '../pictures/';                // for composing tweets
    this.PASS = 0;
    this.FAIL = 1;
    this.NOTDEFINED = 2;
};
var Global = new GlobalMaker();

/**
 *Global 
 */

var Global = 
{
    tag_array:          [],
    current_tag:        0,
    validate_input_on:  0,
    JSON_ON:            1,                             
    GATEWAY:            'class.ControlEntry.php',       
    PICTURES:           '../pictures/',                
    PASS:               0,
    FAIL:               1,
    NOTDEFINED:         2
}
4

1 に答える 1

2

これは、コンストラクター関数を使用せずに同等のことを行います。

var Global = {
    tag_array: [],
    // current_tag, // huh?
    // validate_input_on, // huh?
    JSON_ON: 1,
    GATEWAY: 'class.ControlEntry.php',
    PICTURES: '../pictures/',
    PASS: 0,
    FAIL: 1,
    NOTDEFINED: 2
};

しかし、初期化のない次の 2 つの宣言がわかりません。

ただし、上記のようにこれを行う場合、この Global オブジェクトはその外側のArc関数式内でのみ使用できることに注意してください。真のグローバルではありません。globalまた、' ' (小文字) の使用はかなり一般的であることに注意してください。別の変数名を検討することをお勧めします (おそらく ' constants'?)

于 2012-04-09T17:17:05.107 に答える