0

私は本に沿ってフォローしていて、2つのjavascriptファイルがあります。どちらもHTMLファイルに次のように含まれています。

<script src="playlist_store.js"></script>
<script src="playlist.js"></script>

ただし、playlist.js内のplaylist_store.jsから関数を呼び出そうとすると、chromeデバッガーに「キャッチされていない参照エラー。loadPlaylistが定義されていません。loadPlaylist()はplaylist_store.jsの関数です。

どこかにタイプミスがあるのではないかと思いましたが、そうではないと思います。playlist.jsは実際にplaylist_store.jsをインポートまたはインクルード/要求する必要がありますか?ブラウザは、ある関数を別の関数から呼び出すことができるように、何らかの方法でそれらをリンクするほどスマートではありませんか?

4

1 に答える 1

2

次のような関数の定義

function myaction () { }

名前付き(プライベート)関数です。
変数に割り当てられた(プライベート)関数を作成することをお勧めします。

var myaction = function () { };

ここで必要なのは、グローバルオブジェクトの変数に割り当てられた関数です。

myaction = function () { };
// or strict:
window.myaction = function () { };

これはグローバル(パブリック)関数になっているため、定義している.jsの外部で使用できます。

最初の例である関数ステートメントにはセミコロンがないことに注意してください。他の例のように関数演算子を使用するには、セミコロンが必要です。

于 2012-11-09T17:25:39.647 に答える