Javascript 为什么要获取未定义错误的属性?

Javascript 为什么要获取未定义错误的属性?,javascript,ecmascript-6,Javascript,Ecmascript 6,我得到以下错误 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', ()

我得到以下错误

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;

实例化类时,必须提供
learnosity
参数(不管是什么)
AnnServicePlugin
需要它:

let annServicePlugin = new AnnServicePlugin(learnosity);

当然,
learnosity
对象必须在方法上具有预期的

new AnnServicePlugin()您传递给构造函数的是什么?--<代码>未定义
。所以,console不是在骗你。简单地说,
this.\u learnosity=未定义
on()
未在
未定义的
上定义。什么是
学习性
?它在哪里定义过?问题是调用构造函数时没有参数。因此,
learnosity
未定义。