正如标题所说,我想以"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()}`
)
};
谢谢!
你要找的是一个IIFE(立即调用的函数表达式(: 基本上,您希望包装整个生成器函数并在定义对象时立即调用它:
var obj = {
today: (() => {
const today = new Date;
return `${today.getDate()}/${today.getMonth()}/${today.getFullYear()}`
})()
};
console.log(obj);
附带说明一下:
- 你应该在
today.getMonth()
上做+1
,因为该方法返回月份的从零开始的索引 - 您可能希望使用
.padStart()
来强制使用两位数的月份和日期。
请参阅此处的更新示例:
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);
var today = new Date();
var obj = {
today:(
return `${today.getDate()}/{today.getMonth()}/${today.getFullYear()}`
)
}
应该是工作