首页 > 解决方案 > 在 TypeScript 函数中设置迭代未正确评估

问题描述

当我尝试运行以下代码时,我不断在控制台中收到此消息:“undefined is not an object (evalating 'this.courseAvailThisTerm')”。courseAvailThisTerm() 函数可以正常工作,因为它可以在其他上下文中工作。任何人都知道为什么我不断收到此错误消息?我尝试更改 for 循环版本,但这也不起作用。

for(let quarter of degreePlan) {
    foundationCourseSet.forEach(function(fc) {
            if(this.courseAvailThisTerm(fc, quarter.term))
                console.log("It was avail!");
        });
}

标签: angulartypescriptset

解决方案


尝试这个:

for(let quarter of degreePlan) {
    foundationCourseSet.forEach((fc) => {
            if(this.courseAvailThisTerm(fc, quarter.term))
                console.log("It was avail!");
        });
}

我更改function (fc) {..}为箭头函数(fc) => {...},它保留this在函数执行的上下文中。


推荐阅读