Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript-Date.now是Date函数中的嵌套函数吗?_Javascript - Fatal编程技术网

javascript-Date.now是Date函数中的嵌套函数吗?

javascript-Date.now是Date函数中的嵌套函数吗?,javascript,Javascript,我从控制台上看到日期是一个函数,(typeof Date显示函数)。和Date.now是一个函数 我知道函数Date()可以包含var now=function….,但是从外部无法访问now,它只能是本地的。它可以说this.now,但只有在用new调用Date()时,now才会存在。我可以看到typeof Date是一个字符串,typeof new Date()是一个对象。因此,Date是一个函数。。所以我看不出我现在怎么能约会 我看到日期对象的mdn上列出了“now”,但我看不到它在本机代码

我从控制台上看到日期是一个函数,(
typeof Date
显示函数)。和Date.now是一个函数

我知道函数Date()可以包含
var now=function….
,但是从外部无法访问
now
,它只能是本地的。它可以说
this.now
,但只有在用new调用Date()时,now才会存在。我可以看到typeof Date是一个字符串,typeof new Date()是一个对象。因此,
Date
是一个函数。。所以我看不出我现在怎么能约会


我看到日期对象的mdn上列出了“now”,但我看不到它在本机代码中的位置,例如,如果要编写一个对象Blah,使用Blah.func调用函数,我们将func的定义放在哪里?

now
日期对象上的一个方法,它恰好是一个函数,但是函数对象可以像其他对象一样具有属性。

函数也是一个对象,因此它可以像任何其他对象一样具有属性,并且属性可以将函数作为值

现在
属性不在函数内部,它附加到函数对象。如果您在代码中重复此操作,您将使用:

function Date() {
  // some code
}

Date.now = function(){
  // some code
};
函数是一个对象

虽然函数是一个对象,但typeof function(){}表示“函数”


(function(){})instanceof Object
我认为@Guffa的答案是正确的,但我想提供另一个例子

如果我没听错,你会问下一个行为:

var blah = function() {

};

blah.now = function() {
    new Date();
};
检查类型:

console.log(typeof blah);     // function
console.log(typeof blah.now); // function

我刚刚还发现“somestring”.aaa=4;但“somestring”是一个原语而不是一个对象,它正在被转换成一个对象。甚至在执行var a=“asdf”时;a、 aaa=4;console.log(a.aaa)它是未定义的,因为“a”被转换为一个对象,其属性随后随该对象一起丢失,因为转换后的对象没有分配到任何地方..您接受了一个半相同的答案,该答案在这之后发布。它不是半相同的“因为他有代码”和“因为在我有问题时,我不知道函数是用
Date.now=
(另外,作为一个补充,在我发布问题时,我已经有了答案,并打算发布它,而且已经发布了,所以如果你看我对我自己问题的回答,你会很好地了解我寻找的答案,但我看到一些答案甚至在我发布我自己问题的答案之前就已经发布了...而Guffa已经抓住了问题的要点.)任何答案都是
Date.now=function
Date.now=function
与“日期对象上的方法”完全相同。实际上,更准确的说法是“日期对象上的方法”,因为
Date.now=function
不是
now
的实现方式;除此之外,它是以一种不可枚举的方式实现的。你说得很好..我现在根据你所说的内容更新了我的答案。如果你想让你的答案在代码/解释方面与我的答案一样全面,那么我会喜欢的伊利改变(不考虑改变)从Guffa接受的答案给你。
var blah = function() {

};

blah.now = function() {
    new Date();
};
console.log(typeof blah);     // function
console.log(typeof blah.now); // function