2016-06-09 66 views
0
var a = Date; 
Object.defineProperty(window, "Date", { get: function() { console.log(this); return a; } }); 

(new Date); 
Date(); 

我怎么能知道,当日期被称为构造函数(与“新”),而当它被作为函数调用?日期作为构造和功能

更新
these答案没有为这种情况下工作。
this总是等于一个window

+0

你需要()后,新的日期,只是说 – Jay

+1

@Wade:当您使用'new' – Bergi

+2

请注意,您所定义的吸气总是调用全局对象上你不知道。只有被调用的函数才能真正区分构造函数和函数调用。 – Bergi

回答

-2

日期是一个构造函数。它就像任何JavaScript构造函数一样。当你使用它时,你总是需要使用新的。

JavaScript Date

+0

调用它非常不真实。除非在函数内部明确定义,否则绝对不必使用new。 – Jay