0
(function() {
    var theArg;
     google = function(arg) {
        theArg = arg;
        alert(theArg);
     }

     yahoo = function() {
       alert(theArg);
     }
})();

google("hello");   

アラートがyahoo機能していません。私がここで欠けているものと何が間違っているのか。

4

3 に答える 3

1

と呼ばれる関数を定義していますyahooが、どこからも呼び出していません。したがって、このアラートが表示されるとは思いません。

于 2013-01-21T11:51:26.063 に答える
1

関数を呼び出すことはありませんyahoo

これはあなたが期待するように行います:

google("hello");   
yahoo();
于 2013-01-21T11:51:26.297 に答える
1

メインの質問のコメントに簡単な例を示します。

脚本

(function(exports) {

    var theArg, google, yahoo;

    google = function(arg) {
        theArg = arg;
        alert(theArg);
    }

    yahoo = function() {
        alert(theArg);
    }

    exports.yahoo = yahoo; // This is now available to the window

})(window);

// This will set initial value of 
google("Hello World");

HTMLページ

<!-- This should now alert Hello World! -->
<button onclick="yahoo()">Yahoo</button> 

私の経験では、ウィンドウに割り当てずにこれを呼び出すと、関数が未定義になるため、何も警告されません。コメントで述べたように、これはスコープの問題です。

于 2013-01-21T12:06:05.053 に答える