当我在 Typescript 中编写脚本时,我想在属于同一类的另一个函数 getAllSMS
中使用函数 convertUnixDate
。我希望 getAllSMS
函数内的 date
变量的值等于 convertUnixDate
返回的对象。但现在日期等于一个空函数而不是对象。为什么?
export class SMSManager {
filters: object;
constructor(filter: object) {
this.filters = filter;
}
public static convertUnixDate(unixTimeStamp: number): object {
let date = new Date(unixTimeStamp*1000);
return {
'day': date.getDate(),
'month': date.getMonth(),
'year': date.getFullYear(),
'hour': date.getHours(),
'minutes': date.getMinutes(),
'seconds': date.getSeconds()
};
}
public getAllSMS() {
if (SMS) {
SMS.listSMS(this.filters, function (data) {
let contacts = {};
for (let i = 0; i < data.length; i++) {
if ((data[i].address).length > 7 && (data[i].address).match("[0-9]+")) {
let date = () => {
return this.convertUnixDate(data[i].date);
};
if (contacts.hasOwnProperty(data[i].address)) {
Object.defineProperty(contacts[data[i].address], data[i]._id, {
value: {
"body": data[i].body,
"date": date
}
});
}
}, function (err) {
console.log('error list sms: ' + err);
});
}
}
}
最佳答案
它执行您所编写的操作:() => {...}
是一个函数,它存储在date
中。
您只需编写 let date = SMSManager .convertUnixDate(data[i].date);
即可。
关于javascript - 函数返回函数而不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49852546/