继承类不能使用node.js ES6样式类中基类中定义的变量?

继承类不能使用node.js ES6样式类中基类中定义的变量?,node.js,inheritance,ecmascript-6,Node.js,Inheritance,Ecmascript 6,我使用ES6语法样式在node.js中创建继承类,有两个类,基类用于构建mqtt客户机,继承类用于扩展基类 但是,问题是继承的类不能使用基类中定义的变量 例如,在我的基类中,有一个名为this.mqtt_client的公共变量,当我试图在继承的类中使用该变量时,它总是会出现未定义的问题 我的基类如下 var mqtt = require('mqtt'), EventEmitter = require('events').EventEmitter; class MQTTBaseClass

我使用ES6语法样式在node.js中创建继承类,有两个类,基类用于构建mqtt客户机,继承类用于扩展基类

但是,问题是继承的类不能使用基类中定义的变量

例如,在我的基类中,有一个名为this.mqtt_client的公共变量,当我试图在继承的类中使用该变量时,它总是会出现未定义的问题

我的基类如下

var mqtt = require('mqtt'),
    EventEmitter = require('events').EventEmitter;

class MQTTBaseClass extends EventEmitter{

    constructor( option) {
        super();
        this.mqtt_client = null;
        this.uri = option.uri;
        this.mqttOptions.clientId = option.clientId;
    }

    init(uri, mqttOptions){
        this.mqtt_client = mqtt.connect( uri , mqttOptions ); 
        this.mqtt_client.on('connect', onConnectionSuccess);
        this.mqtt_client.on('error',onConnectionError);
        this.mqtt_client.on('message',onMessageReceived);
        ............
     }
}




class MQTTClass2 extends MQTTBaseClass{

    constructor(option) {
        super(option);
        var self  = this;
        var interval = setInterval(
            function() {
                    self.mqttClient.publish('dddd' , 'ddd' , { retain: false  },function(err){

                    })

        }, 5000);
  }
   ..............
}

错误是完全正确的<代码>mqttClient未定义


基类中不相关的
mqtt_client
字段不会更改任何内容。

错误完全正确<代码>mqttClient未定义


基类中不相关的
mqtt_client
字段不会改变任何内容。

我假设正在调用定义此.mqtt_client的基类init函数

问题似乎是拼写错误,您使用的是
self.mqttClient
,您应该使用
self.mqttu client


作为补充说明,您应该尝试使用通用变量命名方案,以避免将来出现类似问题:大多数Javascript代码都是使用camel大小写的,但没有禁止使用下划线的规则。重要的是保持一致性。

我假设正在调用定义此.mqtt_客户机的基类init函数

问题似乎是拼写错误,您使用的是
self.mqttClient
,您应该使用
self.mqttu client


作为补充说明,您应该尝试使用通用变量命名方案,以避免将来出现类似问题:大多数Javascript代码都是使用camel大小写的,但没有禁止使用下划线的规则。重要的是要保持一致。

投票结束,因为由简单打字错误引起的问题被视为离题,可能是因为保留这些问题供将来使用没有什么价值。投票结束,因为由简单打字错误引起的问题被视为离题,可能是因为保留这些问题没有什么价值供将来使用。