4

在 Google Apps 脚本编辑器中,我有以下代码

  function t(){
    var d = new Date;
    Logger.log(d);
    var y = d.getFullYear;
    Logger.log(y);
    if (y == 2013) {
      Logger.log("yes");
    } else {
      Logger.log("No");
    }
  }

查看日志时,我看到以下结果。

[13-06-23 19:53:52:863 PDT] Sun Jun 23 19:53:52 GMT-07:00 2013
[13-06-23 19:53:52:864 PDT] function getFullYear() { [native code for Date.getFullYear, arity=0] }

[13-06-23 19:53:52:864 PDT] No

我想我会看到一个整数或字符串,它是 getFullYear 返回的值。

对我来说导致这个问题的原因并不是这种方法所独有的。

我相信这是非常基本的。

提前致谢。

4

2 回答 2

11

这会将对该getFullYear函数的引用存储在y

var y = d.getFullYear;

这将调用getFullYear函数并将函数调用的结果存储在y

var y = d.getFullYear();
// ------------------^^

也许您感到困惑,因为您可以创建带或不带括号的对象(假设您当然不需要传递任何参数):

var d1 = new Date;
var d2 = new Date();

两者都做同样的事情,但这只是new运营商的一个怪癖/功能。

于 2013-06-24T03:24:58.697 回答
-1

var y = d.getFullYear; 更改 var y = d.getFullYear(); 您的问题必须以这种方式解决。你忘了那个“()”

于 2022-02-04T11:03:36.710 回答