2012-03-12 12 views
1
var pm.view= { 
    tests_enabled: true 
}; 

(function() { 
    pm.view.methodName1= function() { 

    }; 

    pm.view.methodName2 = function() { 

    }; 

})(); 

エラーが表示されないのはなぜですか? pmオブジェクトを宣言してからviewが、それに取り付けることができるためvarを使用する必要がありますので、私の最初の行の文の前にJavaScriptでpm.viewがありません。私の最初の行 `pm.view`の前のステートメント

答えて

2

変数の宣言は、一つだけの単語でなければなりません。 pmviewが同時に宣言されている場合:

var pm = { 
    view: { 
    tests_enabled: true 
    } 
}; 

またはpm場合は、すでに定義されて、ちょうどそれにviewを追加するために、ドット表記を使用します。

pm.view = { 
    tests_enabled: true 
}; 
+0

あなたの問題を解決します。彼はちょうど 'var'を必要としません。 – kapa

+0

非常に真実なので、答えはそれに応じて修正されました。 – steveukx

0

は単に「VAR」を削除してみてください。 申し訳ありませんが、私はコメントを投稿できません。

+0

'Uncaught ReferenceError:pmが定義されていません。 ' – kapa

+0

pmを定義しましたか?そうでない場合、それは明らかな誤りです。前に 'pm = {};'を追加する必要があります。 – indiepack

+0

OPはコードの最初の行が 'var'行だと言っています。したがって、彼は 'pm'オブジェクトを定義していません。明らかな誤りです、実際には、彼のためではありません。それが彼が尋ねた理由です。 – kapa

1

varは、(現在のスコープ内で)変数を宣言する場合にのみ必要です。 pm.viewは(単一の)変数ではなく、viewpmオブジェクトのプロパティです。まず、あなたがオブジェクトとしてpmを宣言する必要があり、その後、あなたはvarキーワードを指定せずに、それにプロパティを追加することができます。

var pm = {}; 
pm.view= { 
    tests_enabled: true 
}; 
console.log(pm.view.tests_enabled); 

jsFiddle Demo

2

あなたは直接オブジェクトのプロパティを宣言することはできません。 最初にpmオブジェクトを定義し、それにtests_enableプロパティを追加します。

var pm = {}; 
pm.view = { 
    tests_enabled: true 
}; 

か、synatxの下に使用することができます。

var pm = { 
    view : { 
     tests_enabled: true 
    } 
}; 

希望、これはpm`が前に定義されている `場合、それは結構です

関連する問題