将变量传递给自调用函数

时间:2016-06-21 14:46:11

标签: javascript jquery

我有一个AJAX请求,并且在成功处理程序中,能够在我将其传递给名为dataHandler的函数的任何地方获取数据。从那里我处理我需要的东西,最后得到一系列物品。

function dataHandler() {
    var myArray = ["21/06/2016"];
}

我试图将我在dataHandler()函数中得到的内容传递给另一个自我调用的函数,但如果我将函数命名为$(function myName(){},那么在我的第一个函数中{{1}我仍然无法访问数据。

myName(myArray);

如何将变量从普通函数传递给自调用函数?

3 个答案:

答案 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));