下面是我项目中一个更大的 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/