2016-06-23 12 views
-1

JavaScriptで自己実行関数について読んだことがあります。私は解決できなかった問題に遭遇しました。別のJSファイルから自己実行関数を呼び出す

I)は、ファイルの呼び出しservice.js

var api = (function (window, document, $, undefined) { 

var Service = function (obj) { 
    console.log(obj); 
} 
window.Service = Service 

return { 
    service : Service 
} 

})(ウィンドウ、ドキュメント、jQueryのを持っています。 Reference.js:41キャッチされないにReferenceError:APIが定義されていない

は、私は別のファイルのコールCallServiceAPI.js

$('#SearchUser').on('click', function() { 
    var SearchUserObj = {} 
    //Build an object with the necessary properties and try to call the api 

    var FindUser = api.Service(SearchUserObj) 
}); 

次のエラーを投げています。

どうしたのですか?

コメントを読んだ後、私は完全に誤解したと思いますthis記事。

+0

機能を実行するあなたの自己が戻らないことを確認してください 1 apiは何も定義されていません。 (これはコードが2つの別々のファイルにあることとは関係ありません) – JJJ

+0

@Juhana、私はちょっと混乱しています。私は何かを返すと、私は同じ問題があった。あなたのコメントを読んだ後、私はコードを更新しました。私はまだ同じ例外が発生しています。 –

+0

... + 'window.Service'も' undefined'です。宣言は吊り上げられ、代入は行われません。編集後、 'api'で定義された' Service'関数はありません(JSは大文字と小文字を区別します)。 – Teemu

答えて

0

のコメントを読んだ後、私はでそれを修正することができました:すべての変数が正しく 2.リファレンス宣言されている私のレイアウトでファイル

var api = (function (window, document, $, undefined) { 

var Service = function (obj) { 
    console.log(obj); 
} 
window.Service = Service 

return { 
    Service : Service 
} 
関連する問題