javascript 为什么a显示“function getFullYear(){ [native code for Date.getFullYear,arity=0] }”而不是方法返回的值?

rmbxnbpk  于 6个月前  发布在  Java
关注(0)|答案(3)|浏览(89)

在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返回的值。
不管是什么原因导致了这个问题,并不是这种方法所独有的。
我相信这是相当基本的。
先谢了。

cfh9epnr

cfh9epnr1#

这会在y中存储对getFullYear函数的引用:

var y = d.getFullYear;

字符串
这将调用getFullYear函数并将函数调用的结果存储在y中:

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


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

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


这两个都做同样的事情,但这只是new运算符的一个怪癖/特性。

epggiuax

epggiuax2#

你只需要在第四行var y = d.getFullYear;后面加上括号,你的正确代码是:var y = d.getFullYear();

xdnvmnnf

xdnvmnnf3#

var y = d.getFullYear; chanege var y = d.getFullYear();你的问题必须用这种方法解决。你忘了“()”

相关问题