Javascript Angular 2抱怨modelClass.doSomething不是函数
在Javascript Angular 2抱怨modelClass.doSomething不是函数,javascript,angular,typescript,Javascript,Angular,Typescript,在ngOnInit()方法中,我从缓存中查找对象,然后尝试执行在该对象的类中定义的方法 看起来像 ngOnInit() { let modelClass: ModelClass = cache.modelClass; modelClass.doSomething(); } 模型类的定义如下 export class ModelClass{ constructor( public property: string ){} doSomethi
ngOnInit()
方法中,我从缓存中查找对象,然后尝试执行在该对象的类中定义的方法
看起来像
ngOnInit() {
let modelClass: ModelClass = cache.modelClass;
modelClass.doSomething();
}
模型类的定义如下
export class ModelClass{
constructor(
public property: string
){}
doSomething(){
//doing something here
}
}
但是,当加载组件并调用其ngOnInit()方法时,modelClass.doSomething()行出现错误,如
modelClass.doSomething不是一个函数
那么为什么ModelClass的方法没有被识别呢?您确定在那一点上定义了
cache.ModelClass
?您可能正试图对空对象调用该方法
在typescript中,默认情况下声明是公共的,因此应该公开该方法供您调用。很可能是
缓存。modelClass
不返回modelClass
的实例,而是返回其他内容。您可以这样添加支票:
let modelClass: ModelClass = cache.modelClass instanceof ModelClass ? cache.modelClass : new ModelClass();
尝试记录cache和log cache.modelClass。否则,需要更多信息