2009-05-14 3 views
1

問題が解決しました。Javascriptでクラス変数を変更するには?

Andrew NoyesがクラスではなくObject Literal Notationを説明してくれたことに特に感謝します。どのようなnoobの私は..午前

EDIT:

申し訳ありませんが、私は私のjsファイルでミスを犯し、私のJSの構造はこのようなものです:

(私はJavaScriptに全く新しいです、私

var className = { 

settings : { 
    setA : true, 
    setB: true, 
    setC: true, 
    }, 

    Default : { 
     move: true, 
     remove: true, 
     edit: true,\ 
    }, 
    ... 
} 

そして、私のhtmlで)...あなたの男はここに助けが必要、index.htmlを、私はclass.jsファイルが含まれますが、私は好きに設定を変更したい:

Default : { 
    move : false, 
    remove: false, 
    edit: false, 
    } 

edit.htmlのみが移動、削除、編集が許可されているためです。

どうすればよいですか?私は2つのj、class_disable.js(index.htmlに含める)とclass_enable.js(edit.htmlのために)を持っていますか?

あなたのアドバイスが必要です。..

私が試した:

className.settings.Default = {move = false, remove = false, edit = false}; 

をしかし、それは動作しません。

+0

あなたは最終的に何を達成しようとしていますか?これはHWですか?私はちょうどclassName.settings.remove = falseとclassName.settings.edit = falseをedit.html(またはそこに含まれているスクリプト)で行います。 –

+0

いいえ、これはHWではありません、私はAJAXを使用しようとするプロジェクトをやっていますが、JavaScriptには新しい –

答えて

3

これは有効な構文ではありません。

className.settings.Default = {move = false, remove = false, edit = false}; 

Object値次のようにコロンを使用して割り当てられます。

className.settings.Default = { 
    move: false, 
    remove: false, 
    edit: false 
}; 

また、次の構文を使用できます。

className.settings.Default.move = false; 
className.settings.Default.remove = false; 
className.settings.Default.edit: false; 

あなたがここに使用している何それは、オブジェクトリテラル記法と呼ばれる、クラスではなく、JavaScriptで非常に一般的です。クラスやコンストラクタはありません。リテラルを使用してオブジェクトにプロパティを割り当てるだけで、名前オブジェクトのリテラル表記になります。

2
className.settings = {move: false, remove: false, edit: false}; 
2

または長い道のり:

className.settings.move = false; 
className.settings.remove = false; 
className.settings.edit = false; 

あなたはjQueryのを使用する場合は別の方法は次のようになります。

$.extend(className.settings, {move: false, remove: false, edit: false}); 
関連する問題