读取同一对象中的属性时出现 JavaScript 错误?

标签 javascript

下面是我项目中一个更大的 JavaScript 对象的一部分。我删除了几千行代码以仅显示有问题的部分...

第 6 行 下面是有问题的代码行。

JavaScript 的简单示例

projectTaskModal = {

    // Cache Properties
    cache: {
        $taskDueDateSpan: $('#task-modal-due-date-span'),
        $taskDueDateVal: projectTaskModal.cache.$taskDueDateSpan.dataAttr('due-date'),
    }

}

首先在那条线上我试过这个:
$taskDueDateVal: projectTaskModal.cache.$taskDueDateSpan.dataAttr('截止日期'),

但这导致了这个控制台错误:Uncaught TypeError: Cannot read property 'cache' of undefined

接下来我也尝试了这个:
$taskDueDateVal: this.$taskDueDateSpan.dataAttr('截止日期'),

但这也导致了这个控制台错误:Uncaught TypeError: Cannot read property '$taskDueDateSpan' of undefined


正如您在第 6 行看到的,我正在尝试访问第 5 行的值。
projectTaskModal.cache.$taskDueDateSpan

最佳答案

您不能从对象字面量本身内部引用“正在 build 中”的对象。我们唯一要做的就是在对象最初构建后对其进行更新。

projectTaskModal = {

    // Cache Properties
    cache: {
        $taskDueDateSpan: $('#task-modal-due-date-span')
    }

};

projectTaskModal.cache.$taskDueDateVal = projectTaskModal.cache.$taskDueDateSpan.dataAttr('due-date');

或者,使用该 jQuery 表达式初始化另一个变量,并将其用于两个属性:

var $dueDateSpan = $('#task-modal-due-date-span');

projectTaskModal = {

    // Cache Properties
    cache: {
        $taskDueDateSpan: $dueDateSpan,
        $taskDueDateVal: $dueDateSpan.dataAttr('due-date')
    }

}

关于读取同一对象中的属性时出现 JavaScript 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30471810/

相关文章:

javascript - 是否有组织 Javascript 代码的最佳方法?

javascript - IE 6、7 和 8 中缺少 cookie

javascript - 使用map方法创建多维数组: javascript

javascript - WordPress 中无冲突的 jQuery 范围

javascript - 获取 HSL 值,给定 x、y 和色调

javascript - 将文件上传到 S3(法兰克福)时出现错误授权 AWS4-HMAC-SHA256

javascript - d3 v5 : How to transition only when a specific attribute changed?

javascript - 是否可以从 Wakanda 中的服务器端方法返回多个实体集合?

java - 在 Android 应用程序中运行 javascript?

javascript - 完成后移除动画