【发布时间】:2016-10-23 04:36:48
【问题描述】:
我有一个 AJAX 请求,并且在成功处理程序中,能够在我将数据传递给名为 dataHandler 的函数的任何位置获取数据。从那里我处理我需要的东西并最终得到一系列项目。
function dataHandler() {
var myArray = ["21/06/2016"];
}
我正在尝试将 dataHandler() 函数中的内容传递给另一个自调用函数,但如果我将函数命名为 $(function myName(){},那么在我的第一个函数中,myName(myArray); 我仍然可以t 访问数据。
$(function() {
console.log(myArray);
})
如何将变量从普通函数传递到自调用函数?
【问题讨论】:
-
使其全球化,并获得访问权
-
你可能真的想调用这个函数:
(function() { /.../ })()?这与 jQuery 无关,只需创建一个函数,将其包装在括号中并使用标准函数调用来调用它。此外,值myArray不存在)范围之外。 -
您的代码中没有任何 IIFE。您正在立即调用
$()并将函数作为参数传递给它。 -
我如何让它全球化?创建一个全局变量,然后将我的数组推送到第一个函数中的全局变量,然后从第二个函数中获取它?虽然它不同步,所以它可能并不总是有效?
-
调用
dataHandler返回该数组,但返回的数组需要存储或传递给某些东西,否则它会消失在空白中,因为变量myArray只存在在函数内部,而不是在函数外部。所以console.log(dataHandler());会记录你想要的,还有var a = dataHandler(); console.log(a);,但不是dataHandler() console.log(myArray),因为myArray是undefined
标签: javascript jquery