你如何调用在javascript中的数组中创建的对象的函数?

Posted

技术标签:

【中文标题】你如何调用在javascript中的数组中创建的对象的函数?【英文标题】:How do you call functions of objects which were created within an array in javascript? 【发布时间】:2020-06-23 00:25:51 【问题描述】:

在下面的代码中,TypeError "database[(0 , 0)].returnVal is not a function" 被吐回:

let database = [
    [
        new DatabaseItem("00", [1, 2, 3, 4], "abcd", ["haiku", "test"]),
        new DatabaseItem("01", [], "", [0, 0, 0, 0, 0, 0])
    ],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    []
];
console.log("01 ID: " + database[0,0].returnVal());

但下面的代码很好:

validityTest = new DatabaseItem("00", [1, 2, 3, 4], "abcd", ["haiku", "test"]);
console.log("test ID: " + validityTest.returnVal());

除了在数组之外声明我的所有变量(这将使数组的目的最小化)之外,有没有办法纠正这个问题。我需要能够调用数组中对象的函数。

【问题讨论】:

【参考方案1】:

数据库[0,0]

这不是在 javascript 中访问多维数组的正确语法。这段代码使用了令人困惑的comma operator,意思是:“评估左边的0并忽略它,然后评估右边的0并将其用作数据库的索引”。换句话说,它最终与database[0] 没有什么不同。

改为:

database[0][0]

【讨论】:

谢谢!你能说我已经有一段时间没有编码了吗?

以上是关于你如何调用在javascript中的数组中创建的对象的函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何将在我的 Javascript 中创建的字符串数组传递给 C# 代码隐藏文件?

如何使用 javascript 中的 mouseover 事件删除我在 javascript 中创建的 DOM 节点?

如何清除在 Xcode 中创建的 plist 中的数据?

如何在 VBA 的另一个函数中调用我在 VBA 中创建的函数?

如何调用在另一个函数中创建的对象

在 Redux thunk 中创建的数组未正确传递到状态树