0

オブジェクトの配列を含むオブジェクトをナビゲートしています。

Chromeのjs開発者コンソールを使用すると、配列の最初の項目からtitleプロパティを取得できます。

hello.example.array[0].title

これにより、タイトルが返されます(js開発者コンソールのみ)。ただし、これを実行するスクリプトを作成すると、突然次の応答が返されます。

Cannot read property 'array' of undefined

これが私のjsの例です

var theTitle = hello.example.array[0].title;
console.log(theTitle);

jsが検出しないのに、コンソールが正しく検出するのはなぜですか?

4

2 に答える 2

0

スクリプトビューで問題の式を選択してから、Ctrl-Shift-Eショートカットを使用してコンソールで評価してみてください。または、スクリプトビューからコンソールにコピーアンドペーストします。または、スクリプトビューで式の最後のコンポーネントにカーソルを合わせると、値が表示されます。いずれの場合も、何かを間違って入力したか、コンソールなどで式を評価しているコンテキストとは異なるコンテキストでスクリプトを実行していることに気付く可能性があります。

于 2013-02-25T18:08:41.630 に答える
0

@Barmar のおかげで、「タイトル」プロパティを取得する方法を確認する必要があることに気付きました。

私の解決策は、他のコードのコンテキストと、オブジェクトが最初に作成された方法でした。

助けてくれてありがとう!


6年後に編集: この投稿は人気があるので、より有効な回答で更新すると思いました...

  1. 最初に、JavaScript が実際にオブジェクトのスコープ/コンテキストを持っていることを確認してください。

  2. コードが実行された後に実行されているため、JS コンソールはそれを返すことができます..一方、問題の JavaScript は変数が設定される前に変数にアクセスしようとしている可能性があります。

したがって、適切なスコープ/コンテキストがあるかどうか、およびコードが設定される前に変数にアクセスしようとしていないかどうかを確認してください。

于 2013-02-25T18:47:38.280 に答える