我目前正在学习javascript,为此我已经开始研究基于CodeMirror编辑器的小代码编辑器项目。现在我正在尝试实现一个hsaEditorChanged():boolean方法,当编辑器的内容从之前更改并且过去的第二次没有发生更改时返回true。当我运行此代码时,我的chrome js控制台在第71行给出了以下异常:Uncaught TypeError: undefined is not a function
:
e.docLastChanged = new Date.getTime();
。由于我对js缺乏了解,我无法找出问题所在,虽然它可能是一个非常愚蠢的问题......
任何人都可以帮我吗?非常感谢!
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
//...
});
editor.docLastChanged = new Date().getTime();
editor.hasChanged = true;
editor.hasEditorChanged = function(){
var t = new Date().getTime();
if ((t - editor.docLastChanged) > 1000 && editor.hasChanged) { //if no change for 1 sec
editor.hasChanged = false;
return true;
}
else return false;
}
//register onChange handler to update the editor.docLastChanged variable
var changeHandler = function(e){
e.docLastChanged = new Date.getTime(); //ERROR HERE.
e.hasChanged = true;
console.log("changed");
}
editor.on('change', changeHandler(this));
答案 0 :(得分:2)
new
的优先级低于点的优先级,因此您正在执行new (Date.getTime)()
。将代码更改为(new Date).getTime()
或简单地+new Date
以获得毫秒时间戳。