0

我在 click 函数中创建了一个对象数组,如下所示:

    $(".tableButton").click(function()
    {
         CK.tableArray = ["test1","test2","test3","test3"]; // this works
         processTableInfo(CK.tableArray); // this works
    });

现在我需要使用来自上面点击函数的相同数组信息从应用程序的另一部分访问 CK.tableArray。我需要从上面访问这个数组中不同范围的元素......

    $(".displayTable").click(function()
    {
        alert(CK.tableArray) // not define
    })
4

2 回答 2

2

如果您的目标只是绕过array物体,请尝试用window物体固定它。

window.tableArray = ["test1","test2",...]
于 2013-07-29T23:11:18.383 回答
2

一种方法是将变量停放在全局命名空间下,例如 window.namespace。

$(".tableButton").click(function()
{
     window.tableArray = ["test1","test2","test3","test3"]; // this works
     processTableInfo(window.tableArray); // this works
});

然后通过全局命名空间访问它:

$(".displayTable").click(function()
{
    alert(window.tableArray) // not define
})

但是,在您发布的示例中,这实际上取决于定义 CK 的位置(范围)。有关这方面的更多信息,您可以访问关于函数和函数范围的 MDN 文章。

您还可以查看 MDN 文章Scope Cheatsheet

您还可以查看以下StackOverflow 帖子

于 2013-07-29T23:09:00.680 回答