我真的很好奇为什么这段代码将 defaultDate 设置为从今天起 25 年前的日期可以正常工作......
$('div.recipient_modal input[name="birth_date"]:first').datepicker({
changeMonth: true,
changeYear: true,
defaultDate: get_recipient_default_birth_date(),
yearRange: 'c-125:' + new Date().getFullYear()
});
function get_recipient_default_birth_date()
{
var d = new Date();
var y = d.getFullYear() - 25;
d.setFullYear(y);
return $.datepicker.formatDate('mm/dd/yy', d);
}
但是,当我尝试使用匿名函数而不是调用具有相同代码的命名函数,从今天开始将默认日期设置为 25 年前,如下所示......
$('div.recipient_modal input[name="birth_date"]:first').datepicker({
changeMonth: true,
changeYear: true,
defaultDate: function() {
var d = new Date();
var y = d.getFullYear() - 25;
d.setFullYear(y);
return $.datepicker.formatDate('mm/dd/yy', d);
},
yearRange: 'c-125:' + new Date().getFullYear(),
});
我在控制台中收到以下错误...
Uncaught TypeError: Object function () {
var d = new Date();
var y = d.getFullYear() - 25;
d.setFullYear(y);
return $.datepicker.formatDate('mm/dd/yy', d);
} has no method 'getTime'
谁能解释这两个分配的区别以及为什么匿名函数不起作用但命名函数起作用?
谢谢你。