Javascript 为什么date变量不是date的instanceof,即使构造函数是date
挠头想弄明白为什么Javascript 为什么date变量不是date的instanceof,即使构造函数是date,javascript,Javascript,挠头想弄明白为什么myDate不是日期的实例 有人能解释一下吗?我还可以尝试其他调试方法吗 //在其他模块中定义 myDate=新日期(); //console.log输出: console.log(myDate);//2019-11-17T05:00:00.000Z console.log(myDate的类型);//对象✅ console.log(对象的myDate实例);//真的✅ console.log(myDate.constructor);//[职能:日期]✅ console.log
myDate
不是日期的实例
有人能解释一下吗?我还可以尝试其他调试方法吗
//在其他模块中定义
myDate=新日期();
//console.log输出:
console.log(myDate);//2019-11-17T05:00:00.000Z
console.log(myDate的类型);//对象✅
console.log(对象的myDate实例);//真的✅
console.log(myDate.constructor);//[职能:日期]✅
console.log(myDate instanceof Date);//false罪魁祸首是这发生在一个测试套件中,该套件试图模拟或覆盖全局日期对象
global.Date=类扩展日期{
构造函数(){
超级();
返回常量;
}
};
因此出现了奇怪的行为。您使用的是什么浏览器/运行时?当使用最新的Chrome时,我得到以下结果<代码>myDate=新日期();myDate instanceof Date//true
我已经用一个片段替换了您的示例,该片段显示了预期的行为(myDate instanceof Date===true
)。你必须添加更多关于你的设置的信息。在这个问题上有很多讨论:是的,当我在我的设置之外尝试时,我也会得到预期的结果。希望这是件愚蠢的事。我必须看看我是否能找出一个我的设置的最小测试示例。“在其他模块中定义”到底是什么意思?您使用的是什么类型的模块,它们是如何加载的,是否有可能在不同的领域中运行?顺便说一句,即使myDate.constructor.name==“Date”
我打赌myDate.constructor!=日期