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

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

google("hello");   

我没有收到yahoo功能警报。我在这里缺少什么以及出了什么问题。

4

3 回答 3

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");

网页

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

根据我的经验,如果您在没有分配给窗口的情况下调用它,它不会发出任何警报,因为该函数将是未定义的。正如评论中提到的,这是一个范围问题。

于 2013-01-21T12:06:05.053 回答
1

您正在定义一个名为 的函数yahoo,但您没有在任何地方调用它 - 因此我不希望您看到此警报。

于 2013-01-21T11:51:26.063 回答
1

您永远不会调用该yahoo函数。

这如你所料:

google("hello");   
yahoo();
于 2013-01-21T11:51:26.297 回答