【发布时间】:2016-06-09 01:19:00
【问题描述】:
var a = Date;
Object.defineProperty(window, "Date", { get: function() { console.log(this); return a; } });
(new Date);
Date();
我怎么知道 Date 何时被作为构造函数调用(使用“new”),何时被作为函数调用?
更新
these 答案不适用于这种情况。this 始终等于 window
【问题讨论】:
-
新日期后需要 (),只是说
-
@Wade:当你使用
new时你不会@ -
请注意,您定义的 getter 始终在全局对象上调用。只有被调用的函数才能真正区分构造函数和函数调用。
-
@Bergi 对不起,需要是一个强词。这不是惯例吗?
-
@Wade:我不认为这是一个约定,只是你看到的大多数构造函数调用都带有参数,你需要括号。
标签: javascript datetime getter ecmascript-5 defineproperty