(function() {
var theArg;
google = function(arg) {
theArg = arg;
alert(theArg);
}
yahoo = function() {
alert(theArg);
}
})();
google("hello");
我没有收到yahoo
功能警报。我在这里缺少什么以及出了什么问题。
(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");
网页
<!-- This should now alert Hello World! -->
<button onclick="yahoo()">Yahoo</button>
根据我的经验,如果您在没有分配给窗口的情况下调用它,它不会发出任何警报,因为该函数将是未定义的。正如评论中提到的,这是一个范围问题。
您正在定义一个名为 的函数yahoo
,但您没有在任何地方调用它 - 因此我不希望您看到此警报。
您永远不会调用该yahoo
函数。
这如你所料:
google("hello");
yahoo();