Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将变量传递给自调用函数_Javascript_Jquery - Fatal编程技术网

Javascript 将变量传递给自调用函数

Javascript 将变量传递给自调用函数,javascript,jquery,Javascript,Jquery,我有一个AJAX请求,在success处理程序中,可以在我将数据传递给名为dataHandler的函数的任何位置获取数据。从那里我可以处理我需要的东西,最终得到一系列的物品 function dataHandler() { var myArray = ["21/06/2016"]; } 我试图将我在dataHandler()函数中得到的东西传递给另一个自调用函数,但是如果我像$(function myName(){}那样命名该函数,那么在我的第一个函数中,我做了myName(myArr

我有一个AJAX请求,在success处理程序中,可以在我将数据传递给名为
dataHandler
的函数的任何位置获取数据。从那里我可以处理我需要的东西,最终得到一系列的物品

function dataHandler() {
    var myArray = ["21/06/2016"];
}
我试图将我在
dataHandler()
函数中得到的东西传递给另一个自调用函数,但是如果我像
$(function myName(){}
那样命名该函数,那么在我的第一个函数中,我做了
myName(myArray);
我仍然无法访问数据

$(function() {
    console.log(myArray);
})
如何将变量从普通函数传递到自调用函数?

您的代码中没有任何变量,您要传递的变量是它在其中声明的函数

听起来你真的需要这样的东西:

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

    $(function() {
        console.log(myArray);
    });
}

dataHandler();
其中:

  • dataHandler
    实际被调用(因此变量被赋值)
  • $()
    dataHandler
    内部调用,这样当匿名函数传递给
    myArray
    时,它就在作用域内
您的代码中没有任何变量,您要传递的变量是它在其中声明的函数

听起来你真的需要这样的东西:

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

    $(function() {
        console.log(myArray);
    });
}

dataHandler();
其中:

  • dataHandler
    实际被调用(因此变量被赋值)
  • $()
    dataHandler
    内部调用,这样当匿名函数传递给
    myArray
    时,它就在作用域内

将函数作为参数传递给自调用函数,如下所示:

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

(function(yourArray) {
    console.log(yourArray);
})(dataHandler());

将函数作为参数传递给自调用函数,如下所示:

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

(function(yourArray) {
    console.log(yourArray);
})(dataHandler());

通常使用自调用函数实现模块模式。在模块模式中,我们将引用保留给函数的返回对象。在这种情况下,我们将返回值视为模块的公共API:

var module = (function (param) {
  // private
  return {
    // public
  };
}(param));

通常使用自调用函数实现模块模式。在模块模式中,我们将引用保留给函数的返回对象。在这种情况下,我们将返回值视为模块的公共API:

var module = (function (param) {
  // private
  return {
    // public
  };
}(param));

使其全局化,并获得对它的访问您可能实际上想要调用函数:
(function(){/../})(
?不管jQuery如何,这都可以工作,只需创建一个函数,将其包装在括号中,然后使用标准函数调用调用它。另外,值
myArray
不存在)超出范围。你的代码中没有任何生命。您正在立即调用
$()
,并将一个函数作为参数传递给它。我如何使其全局化?创建一个globar变量,然后在第一个函数中将数组推送到全局变量,然后从第二个函数中获取它?虽然它不同步,所以它可能不总是工作?调用
dataHandler
会返回该数组,但返回的数组需要存储或传递给某个对象,否则它会消失在空中,因为变量
myArray
只存在于函数内部,而不存在于函数外部。So
console.log(dataHandler())
将记录您想要的内容,以及
var a=dataHandler();控制台日志(a)
,但不是
dataHandler()console.log(myArray)
,因为
myArray
未定义的
使其全局化,并获取对它的访问您可能实际上想要调用函数:
(function(){/../})(
?无论jQuery如何,这都可以工作,只需创建一个函数,将其封装在括号中,然后使用标准函数调用调用它。此外,值
myArray
不存在)超出范围。代码中没有任何IIFE。您正在立即调用
$()
,并将一个函数作为参数传递给它。我如何使其全局化?创建一个globar变量,然后在第一个函数中将数组推送到全局变量,然后从第二个函数中获取它?虽然它不同步,所以它可能不总是工作?调用
dataHandler
会返回该数组,但返回的数组需要存储或传递给某个对象,否则它会消失在空中,因为变量
myArray
只存在于函数内部,而不存在于函数外部。So
console.log(dataHandler())
将记录您想要的内容,以及
var a=dataHandler();控制台日志(a)
,但不是
dataHandler()console.log(myArray)
,因为
myArray
未定义的
,尽管里面的函数实际上没有做任何事情,是吗?你能用console.log(myArray)替换
$(fu…
)吗?你能达到同样的效果吗?除此之外,我知道。@somethinghere-它会延迟它的执行,直到ready事件触发。这对于console.log来说并不重要,但对于涉及DOM的任何事情都是如此。@somethinghere好奇的头脑也能帮助周围的人学习,保持它的正确性,并且与问题无关。虽然它里面的函数并没有真正做任何事情,是吗?你能用console.log(myArray)替换
$(fu…
)吗?你能达到同样的效果吗?除此之外,我知道。@somethinghere-它会延迟执行,直到就绪事件触发。这对于console.log来说并不重要,但对于涉及DOM的任何事情都是如此。@somethinghere好奇的头脑也能帮助周围的人学习,保持它-恰如其分,与问题无关。