【问题标题】:Date as a constructor and as a function [duplicate]日期作为构造函数和函数[重复]
【发布时间】: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


【解决方案1】:

日期是一个构造函数。它就像任何 JavaScript 构造函数一样。使用时总是需要使用 new 。

JavaScript Date

【讨论】:

  • 非常不真实。除非在函数内部明确定义,否则您永远不必严格使用 new。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-13
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
  • 1970-01-01
  • 2018-09-23
  • 2013-09-06
相关资源
最近更新 更多