Date.getTime 不是构造函数
Date.getTime is not a constructor
在函数中我有一行:
const currentTime = new Date.getTime();
代码编译得很好。
此外,ESLint 既不显示警告也不显示
错误。
但是当我 运行 代码时,我得到一个警告框,给出令人困惑的信息
留言 Date.getTime is not a constructor
.
这里有什么问题?
我注意到如果我不调用该函数就没有错误
包含上面的行。
以下堆栈代码段重现了错误。
function rightNow() {
const currentTime = new Date.getTime();
return currentTime;
}
console.log(rightNow().toString());
// ^^ No error if I comment out the previous line! ^^
.as-console-wrapper { max-height: 100% !important; top: 0; }
1。快速修复
直接在new Date
后面加上括号即可:
const currentTime = new Date().getTime();
2。说明
Date.getTime is not a constructor
如果编译器是一个有思想的人,它可以响应
片段
new Date.getTime();
说 啊哈!我想我明白你的意思了:有一个名为 class 的
Date.getTime
现在你想调用默认构造函数
创建一个新对象:new Date.getTime()
,对吗?
抱歉,我找不到任何这样的构造函数。
我能听到你——程序员——尖叫 不!!那是不是
我的意思是! (愚蠢的✴!☠#@☠$%编译器!)
在你冷静下来恢复正常后
血压,你可以 - 耐心地 - 尝试这样的事情:
编译器先生,我们显然走错了路——我从来没有
意在伤害你的感情。
我想要的是:请创建一个新的 Date
对象,然后调用
该新创建对象的 getTime()
方法。
你看我这样说,看看你能不能更明白我的意思
观点?
const currentTime = (new Date).getTime();
Missing '()' invoking a constructor new-parens
编译先生的回复:
Missing '()' invoking a constructor new-parens
或者——用更人性化的语言。
好的!所以你想创建一个新的 Date
对象?
你想在那个对象上 .getTime()
?
没关系。 – 除了你忘了告诉我哪个
你想让我使用的构造函数。它是默认构造函数吗?
或者其他一些构造函数?
既然你不告诉我,我就假设你
要我使用 default 构造函数。
但是下次你问我的时候你会考虑更明确一点吗
做这样的事情?
这样我就不必对你的意思做出有根据的猜测。
叹息辞职后,你——程序员——再试一次:
const currentTime = (new Date()).getTime();
终于——编译先生没有抱怨了!
编译先生这次沉默回应,很好
消息!
– 沉默回应表明 Compiler 先生处于最佳状态
心情
不过,你是一个人类而不是编译器,所以你可以想象
编译器先生说:
好的。所以 (new Date()).getTime()
意味着你想创建一个新的
Date
对象使用默认构造函数,然后调用
getTime()
在该对象上。一切都很好。我没有怨言。
但是因为你是一个非常敏感的人,你无法控制自己
问:
好!我很高兴我们最终就此达成一致。但是有没有什么
还在想吗?原谅我多问
您想象一下编译器先生回应:
没有没有。你的代码是有道理的。没关系。真的是。
但是,既然你一直唠叨我——写(new Date())
就好了。
没有什么问题。但你并不需要周围
括弧。一旦你写 new Date()
然后我明白你
想要创建一个 Date 对象,即使您随后对该对象调用了一个方法
对象.
– 我不笨你懂的!
结语
作为一般规则,运行时错误——就像这个问题——通常是
比编译器错误更难理解和调试
警告。
这时 Stack Overflow question-and-answer 可能会有所帮助。
正如评论中所指出的,一个更短的替代方案
new Date().getTime()
就是简单明了的 Date.now()
.
这是没有错误的堆栈代码段。
function rightNow() {
const currentTime = Date.now();
return currentTime;
}
console.log(rightNow().toString());
.as-console-wrapper { max-height: 100% !important; top: 0; }
参考
在函数中我有一行:
const currentTime = new Date.getTime();
代码编译得很好。
此外,ESLint 既不显示警告也不显示
错误。
但是当我 运行 代码时,我得到一个警告框,给出令人困惑的信息
留言 Date.getTime is not a constructor
.
这里有什么问题?
我注意到如果我不调用该函数就没有错误 包含上面的行。
以下堆栈代码段重现了错误。
function rightNow() {
const currentTime = new Date.getTime();
return currentTime;
}
console.log(rightNow().toString());
// ^^ No error if I comment out the previous line! ^^
.as-console-wrapper { max-height: 100% !important; top: 0; }
1。快速修复
直接在new Date
后面加上括号即可:
const currentTime = new Date().getTime();
2。说明
Date.getTime is not a constructor
如果编译器是一个有思想的人,它可以响应 片段
new Date.getTime();
说 啊哈!我想我明白你的意思了:有一个名为 class 的
Date.getTime
现在你想调用默认构造函数
创建一个新对象:new Date.getTime()
,对吗?
抱歉,我找不到任何这样的构造函数。
我能听到你——程序员——尖叫 不!!那是不是 我的意思是! (愚蠢的✴!☠#@☠$%编译器!)
在你冷静下来恢复正常后 血压,你可以 - 耐心地 - 尝试这样的事情:
编译器先生,我们显然走错了路——我从来没有
意在伤害你的感情。
我想要的是:请创建一个新的 Date
对象,然后调用
该新创建对象的 getTime()
方法。
你看我这样说,看看你能不能更明白我的意思
观点?
const currentTime = (new Date).getTime();
Missing '()' invoking a constructor new-parens
编译先生的回复:
Missing '()' invoking a constructor new-parens
或者——用更人性化的语言。
好的!所以你想创建一个新的 Date
对象?
你想在那个对象上 .getTime()
?
没关系。 – 除了你忘了告诉我哪个
你想让我使用的构造函数。它是默认构造函数吗?
或者其他一些构造函数?
既然你不告诉我,我就假设你
要我使用 default 构造函数。
但是下次你问我的时候你会考虑更明确一点吗
做这样的事情?
这样我就不必对你的意思做出有根据的猜测。
叹息辞职后,你——程序员——再试一次:
const currentTime = (new Date()).getTime();
终于——编译先生没有抱怨了!
编译先生这次沉默回应,很好 消息! – 沉默回应表明 Compiler 先生处于最佳状态 心情
不过,你是一个人类而不是编译器,所以你可以想象
编译器先生说:
好的。所以 (new Date()).getTime()
意味着你想创建一个新的
Date
对象使用默认构造函数,然后调用
getTime()
在该对象上。一切都很好。我没有怨言。
但是因为你是一个非常敏感的人,你无法控制自己 问:
好!我很高兴我们最终就此达成一致。但是有没有什么 还在想吗?原谅我多问
您想象一下编译器先生回应:
没有没有。你的代码是有道理的。没关系。真的是。
但是,既然你一直唠叨我——写(new Date())
就好了。
没有什么问题。但你并不需要周围
括弧。一旦你写 new Date()
然后我明白你
想要创建一个 Date 对象,即使您随后对该对象调用了一个方法
对象.
– 我不笨你懂的!
结语
作为一般规则,运行时错误——就像这个问题——通常是
比编译器错误更难理解和调试
警告。
这时 Stack Overflow question-and-answer 可能会有所帮助。
正如评论中所指出的,一个更短的替代方案
new Date().getTime()
就是简单明了的 Date.now()
.
这是没有错误的堆栈代码段。
function rightNow() {
const currentTime = Date.now();
return currentTime;
}
console.log(rightNow().toString());
.as-console-wrapper { max-height: 100% !important; top: 0; }