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

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

google("hello");


我没有在yahoo功能中收到警报。我在这里想念的地方和出了什么问题。

最佳答案

快速举例说明主要问题中的评论。

脚本

(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>


以我的经验,如果您在未分配窗口的情况下调用此函数,它将不会发出任何警告,因为该函数未定义。如评论中所述,这是一个范围问题。

关于javascript - 在函数表达式中传递参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14437988/

10-09 20:45