2016-07-06 54 views
2

我收到以下错误。为什么我会收到未定义错误的属性?

Uncaught TypeError: Cannot read property 'on' of undefined 

它发生在我的代码

let ServicePlugin = new ServicePlugin(); 

任何想法,我做错了行补充的吗?以下是完整的代码。

'use strict'; 

class ServicePlugin { 
    constructor(api) { 
    this._api = api; 

    this._api.on('ready',() => this._apiReady()); 
    this._api.on('saveSuccess',() => this._apiSuccess()); 
    } 

    _apiReady() { 
    console.log('Plugin Ready') 
    } 

    _apiSuccess() { 
    console.log('Plugin Success'); 
    } 

} 

let ServicePlugin = new ServicePlugin(); 
ServicePlugin._apiReady(); 

module.exports = ServicePlugin; 
+7

'new AnnServicePlugin();'你传递给构造函数的是什么? - “未定义”。所以,控制台不会骗你。简单地说'this._learnosity = undefined;'和'on()'没有在'undefined'上定义。 – Tushar

+0

什么是“学习能力”?它在哪里定义? –

+2

问题是没有参数调用构造函数。结果'学习力'是不确定的。 –

回答

3

您必须提供learnosity参数(无论是)当实例类。 AnnServicePlugin期望它:

let annServicePlugin = new AnnServicePlugin(learnosity); 

当然,learnosity对象必须具有预期on方法。

相关问题