(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
機能していません。私がここで欠けているものと何が間違っているのか。
と呼ばれる関数を定義していますyahoo
が、どこからも呼び出していません。したがって、このアラートが表示されるとは思いません。
関数を呼び出すことはありませんyahoo
。
これはあなたが期待するように行います:
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>
私の経験では、ウィンドウに割り当てずにこれを呼び出すと、関数が未定義になるため、何も警告されません。コメントで述べたように、これはスコープの問題です。