动态有效地将今天的日期作为字符串分配给属性

时间:2019-02-08 12:49:03

标签: javascript

正如标题所述,我想将日期以字符串形式(DD / MM / YYYY)动态分配给属性。它必须动态地计算并在对象属性声明旁边分配。

我想到了这样的东西:

var obj = {
    today: `${(new Date).getDate()}/${(new Date).getMonth()}/${(new Date).getFullYear()}`
};

这可以完美地工作,但显然效率不高,因为它创建了三个新的Date实例。 我想这样做:

var obj = {
    today: (
        const today = new Date;
        return `${today.getDate()}/${today.getMonth()}/${today.getFullYear()}`
    )
};

谢谢!

3 个答案:

答案 0 :(得分:3)

您要查找的是 IIFE (立即调用函数表达式):基本上,您想包装整个生成器函数并在定义对象时立即调用它:

var obj = {
    today: (() => {
        const today = new Date;
        return `${today.getDate()}/${today.getMonth()}/${today.getFullYear()}`
    })()
};

console.log(obj);

附带说明:

在此处查看更新的示例:

function pad(val) {
  return val.toString().padStart(2, '0');
}

var obj = {
    today: (() => {
        const today = new Date;
        return `${pad(today.getDate())}/${pad(today.getMonth() + 1)}/${today.getFullYear()}`
    })()
};

console.log(obj);

答案 1 :(得分:0)

var today = new Date();
var obj = {
 today:(
   return `${today.getDate()}/{today.getMonth()}/${today.getFullYear()}`
)
}

应该工作

答案 2 :(得分:0)

我正在使用函数来执行此操作,以使变量“ today”(如果已存在)不会被覆盖,只是一个预防措施

obj = {
today: ( function() {
   today = new Date();
   return "" + today.getDate() + "/" + today.getMonth() + "/" + today.getFullYear();
})()
};