javascript - javascript: `Date()` 和 `new Date()`
问题描述
为什么会Date()
给出new Date()
不同的结果?如何Date()
实施以及为什么要这样实施?
typeof(Date())
>> "string"
typeof(new Date())
>> "object"
解决方案
Date() 是如何实现的?
函数有一些方法可以确定它是否被调用new
,一种是检查值,this
另一种是new.target
(伪代码):
function Date() {
if(!(this instanceof Date)) {
return "string";
}
}
但是内部对象通常不是用 JS 本身编写的,而是用运行 JS 的语言编写的。
为什么它是这样实现的?
你永远不会得到答案。没有人做出错误的设计决定。
推荐阅读
- r - 为 R 数据框变量分配注释
- r - 将 var() 函数应用于 data.frame 时获取 NA
- java - Selenium Facebook 安全检查的验证码不可见
- java - Java随机和Kotlin随机的区别
- shell - Sagemaker 实例在启动时执行自动 cd
- python-3.x - 从节点属性向 Dataframe 添加标签
- java - Jayway“设置”方法:如何知道字段是否丢失?
- linux - 每次用户解锁屏幕时运行 bash 脚本
- python - 如何在 Scrapy 中按所需顺序或同步爬行?
- python - 创建列表只能将str(不是“int”)连接到str