1

そのように定義された配列を持つ内部スクリプトがあります。また、「data」配列のデータセットを読み取る外部スクリプトもあります。セットアップ方法のモックアップを作成しました。これが役に立たない場合は、実際のページへのリンクを提供します。

内部スクリプト:

<script type="text/javascript">
  data = {    
   "id": "1",
   "name": "joe"
  }
</script>

外部スクリプト:

(function(window, document, undefined) {
  find = {
    postCount: function(){
      var user = data.name;
    }
  };

  find.postCount(); // If called here, data is undefined.

})(this, document);

問題: コンソール以外の場所で関数を呼び出すと、undefined が返されます。

私はまだJavaScriptにかなり慣れていないので、おそらくばかげた間違いか何かをしている可能性があります。詳細が必要な場合はお知らせください. また、投稿の質についてお詫び申し上げます。ここに投稿するのは初めてです。

どんな助けでも大歓迎です、ありがとう。

4

2 に答える 2

2

そうあるべきではありませんdata = { ...か?

于 2013-06-26T07:35:15.423 に答える
0

スクリプト ブロックがデータを宣言する前に、外部の JavaScript ファイルをインクルードしている可能性があります。これを行うと、が宣言find.postCount();される前に呼び出されることになります。dataその時点dataで宣言されているため、コンソールから呼び出すと機能します。

find.postCount();また、呼び出すと、コンソール ウィンドウで未定義を返すように表示されることにも注意してください(関数は変数を宣言しますuserが、実際には何も返さないためです。

于 2013-06-26T08:08:15.323 に答える