我有一个AJAX请求,并且在成功处理程序中,能够在我将其传递给名为dataHandler
的函数的任何地方获取数据。从那里我处理我需要的东西,最后得到一系列物品。
function dataHandler() {
var myArray = ["21/06/2016"];
}
我试图将我在dataHandler()
函数中得到的内容传递给另一个自我调用的函数,但如果我将函数命名为$(function myName(){}
,那么在我的第一个函数中{{1}我仍然无法访问数据。
myName(myArray);
如何将变量从普通函数传递给自调用函数?
答案 0 :(得分:2)
您的代码中没有IIFE,并且您要传递的变量是locally scoped到声明它的函数。
听起来你真的需要这样的东西:
function dataHandler() {
var myArray = ["21/06/2016"];
$(function() {
console.log(myArray);
});
}
dataHandler();
其中:
dataHandler
实际上被调用(因此变量被赋值)$()
内调用dataHandler
,以便在传递匿名函数时myArray
在范围内答案 1 :(得分:1)
将函数作为参数传递给自调用函数,如下所示:
function dataHandler() {
var myArray = ["21/06/2016"];
return myArray;
}
(function(yourArray) {
console.log(yourArray);
})(dataHandler());
答案 2 :(得分:0)
通常,模块模式是使用自调用功能实现的。在模块模式中,我们保留对函数返回对象的引用。在这种情况下,我们将返回值视为模块的公共API:
var module = (function (param) {
// private
return {
// public
};
}(param));