这是代码
test ('e');
function test(e) {
test2(e); //undefined
}
(function ($) {
function test2(e) {
alert('test');
}
})
由于某些限制,我必须这样打电话。有人知道吗?
答案 0 :(得分:1)
你不能,函数test2
已在闭包中定义,你只能调用该范围内的函数。
答案 1 :(得分:0)
在文档上绑定事件并触发它:
function test(e) {
var param=1;
param2=4;
jQuery(document).trigger('mytest2',[param,param2]);
}
(function ($) {
$(document).bind('mytest2',test2);
function test2(event,param,param2) {
alert('test '+param+' '+param2);
}
})(jQuery)
setTimeout(test,2000);
答案 2 :(得分:0)
您可以在匿名函数之外声明test2
:
var test2; //Declare test2 in global
(function ($) {
test2 = function (e) { //define test2
alert('test'); //because test2 was declared in global,
}; // it will stay global.
})(jQuery);
test('e'); //Call test
function test(e) {
test2(e); //Since test2 can be access anywhere in your code,
} //it is now defined.