2016-06-09 48 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