Javascript TypeError:日期不是构造函数
所以,我已经为我的公司制作表单一段时间了,在过去,我一直使用非常简单的Javascript。然而,它突然抛出了错误:Javascript TypeError:日期不是构造函数,javascript,date,constructor,typeerror,acrobat,Javascript,Date,Constructor,Typeerror,Acrobat,所以,我已经为我的公司制作表单一段时间了,在过去,我一直使用非常简单的Javascript。然而,它突然抛出了错误:TypeError:Date不是构造函数 守则: var Date = this.getField("Text1"); Date.value = util.printd("mm/dd/yyyy",new Date()); 它适用于我所有的旧表单,但现在不适用于新表单。。。我试着在一个旧表单上创建一个新按钮——只是复制和粘贴代码,然后它会破坏所有其他按钮并抛出相同的错误 运行:Wi
TypeError:Date不是构造函数
守则:
var Date = this.getField("Text1");
Date.value = util.printd("mm/dd/yyyy",new Date());
它适用于我所有的旧表单,但现在不适用于新表单。。。我试着在一个旧表单上创建一个新按钮——只是复制和粘贴代码,然后它会破坏所有其他按钮并抛出相同的错误
运行:Windows 7 64位,AcROAT席11 .0 .10
P > >变量<代码>日期<代码>隐藏全局函数并导致此错误。由于JS中的作用域是如何工作的,名称的最内在用法才是最重要的 在本例中,您将声明var-Date
,它将成为函数唯一知道的Date
。当您为其指定一个字段或文本(Date=this.getField…
)时,您将隐藏全局类
你可以重命名你的变量(我建议
date
,因为大写的名字通常是为类型保留的),或者在你去构造一个新的日期时显式地引用new window.date
。你不能定义一个名为“date”的变量,因为JS中有一个内置的对象叫做它(实际上你在你的代码中使用它). 将名称更改为其他名称
var-Date=somthing我遇到了这个问题,我解决了!不要使用“Date”作为变量,因为这会导致与全局函数Date()冲突强> 例句:错了
var Date = new Date();
document.getElementById('dateCopy').innerHTML = Date.getFullYear();
对:
var DateTime = new Date();
document.getElementById('dateCopy').innerHTML = DateTime.getFullYear();
就你而言:
var DateTime = this.getField("Text1");
DateTime.value = util.printd("mm/dd/yyyy",new Date());
这对我很有用:
var d = new window.Date();
使用AngularJs也有同样的问题。有一个被注入的服务叫做“Date”。重命名服务(如果可能)或使用window.Date可以解决此问题。定义名为Date的变量没有问题。问题在于,它是一个全局变量,可能会被页面上的许多其他内容使用。查看@ssube答案以了解详细信息