javascript - Chrome 未捕获类型错误:无法读取未定义的属性
问题描述
我是一个编程新手,正在阅读 Steven Foote 的《Learning to Program》一书。我试图找出为什么 Chrome 告诉我我有这两个错误:
未捕获的类型错误:无法读取未定义的属性“当前日期”未捕获的
类型错误:无法读取未定义的属性“项目名称”
这是我写的:
值.js
var kbValues = {
projectName: 'kittenbook',
versionNumber: '0.0.1',
currentDate: new Date(),
currentTime: [kbValues.currentDate.getFullYear() + '-' +
(kbValues.currentDate.getMonth() + 1)+ '-' +
kbValues.currentDate.getDate() + ' at ' +
kbValues.currentDate.getHours() + ':' +
kbValues.currentDate.getMinutes() + ':' +
kbValues.currentDate.getSeconds()]
};
kittenbook.js
document.body.innerHTML = '<h1>Hello, ' + userName + '!</h1>' +
'<p>' + kbValues.projectName + '' + kbValues.versionNumber +
' accessed on: ' + kbValues.currentTime + '</p>';
清单.json
{
"manifest_version": 2,
"name": "kittenbook",
"description": "Replace photos on Facebook with kittens",
"version": "0.0.1",
"content_scripts": [
{
"matches": ["*://www.facebook.com/*"],
"js": ["js/values.js","js/kittenbook.js"]
}
]
}
我对此真的很陌生。
解决方案
您不能在其定义期间使用变量的属性,您正在尝试访问 kbValues 的 currentDate,然后再分配它
如您所见,此代码段将返回错误:
var kbValues = {
projectName: 'kittenbook',
versionNumber: '0.0.1',
currentDate: new Date(),
currentTime: [kbValues.currentDate.getFullYear() + '-' +
(kbValues.currentDate.getMonth() + 1)+ '-' +
kbValues.currentDate.getDate() + ' at ' +
kbValues.currentDate.getHours() + ':' +
kbValues.currentDate.getMinutes() + ':' +
kbValues.currentDate.getSeconds()]
};
相反,您应该尝试在变量定义之前分配日期,这样您就可以访问它
var currentDate = new Date();
var kbValues = {
projectName: 'kittenbook',
versionNumber: '0.0.1',
currentDate,
currentTime: [currentDate.getFullYear() + '-' +
(currentDate.getMonth() + 1)+ '-' +
currentDate.getDate() + ' at ' +
currentDate.getHours() + ':' +
currentDate.getMinutes() + ':' +
currentDate.getSeconds()]
};
console.log(kbValues)
推荐阅读
- delphi - 如何检测文件夹更改何时完成?
- c - 如何在小端机器上返回 351351 int?
- bash - 如何在 If 语句中比较 shell 中的 2 个布尔变量
- c++ - C++ 评估它不应该的表达式
- javascript - 获取距离测量值并添加推荐
- angular - 如何在规范测试中模拟 ngOnInit() 中的路由 queryParams
- c# - 如何让 Hololens 全息图锚定在物理环境中?
- javascript - Youtube 缩略图和实际视频 CSS 修复 (WordPress)
- wagtail - 消除
来自 wagtail 的富文本字段的标记
- javascript - 打字稿从对象中获取不同的值