javascript - 函数返回函数而不是对象

标签 javascript function typescript

当我在 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/

相关文章:

javascript - 固定标题淡出、淡入

python - 初学者 Python - 如何使用函数修改列表

c++ - 为什么此函数不将一个数字加到一个称为int的整数上?

javascript - 如何在网站上展示 Ionic2 应用程序?

javascript - 将两个对象与多个 Node 组合起来 - 为什么这段代码可以工作?

javascript - 第一次调用函数不会按预期工作,但下次可以工作

html - Angular Flickity 改变元素

javascript - Angular 下拉导航

jquery - 使用 JQuery 禁用 Html 按钮一段时间

javascript - 调用函数而无需每次都重新初始化