【发布时间】:2017-02-06 21:54:24
【问题描述】:
我在node.js中使用ES6语法风格做继承类,有两个类,基类是构建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);
}
..............
}
【问题讨论】:
-
投票结束,因为由简单错字引起的问题被认为是题外话,可能是因为保留它们以供将来使用几乎没有价值。
标签: node.js inheritance ecmascript-6