Javascript ES6类扩展了套接字IO

Javascript ES6类扩展了套接字IO,javascript,websocket,socket.io,ecmascript-6,es6-class,Javascript,Websocket,Socket.io,Ecmascript 6,Es6 Class,我正在做一个项目,我需要扩展 socket.io客户端 去上课,现在我没法上课,有人能帮忙吗D import io from 'socket.io-client'; export default class Websocket extends io { constructor(address) { super(address) } message() { alert('1') } } let socket = new Websocket(); so

我正在做一个项目,我需要扩展

socket.io客户端

去上课,现在我没法上课,有人能帮忙吗D

import io from 'socket.io-client';

export default class Websocket extends io {

  constructor(address) {
    super(address)
  }

  message() {

    alert('1')

  }

}

let socket = new Websocket();

socket.message();

如果我尝试调用message方法,chrome输出“uncaughttypeerror:socket.message不是一个函数”

io
是一个工厂,而不是一个构造函数

错误消息现在意味着
Websocket
constructor
函数返回由
super
调用返回的对象,这与作为构造函数调用
Websocket
时创建的新对象不同。这很容易得到证实:

var testObject={};
函数io(){return testObject;}
类Websocket扩展io{
建造商(地址){
超级(地址)
}
消息(){
警报('1')
}
}
让套接字=新的Websocket();
log(“套接字与testObject相同:”+(socket==testObject));

log(“Websocket.prototype.message:+Websocket.prototype.message”)
io
是一个工厂,而不是一个构造函数和函数

错误消息现在意味着
Websocket
constructor
函数返回由
super
调用返回的对象,这与作为构造函数调用
Websocket
时创建的新对象不同。这很容易得到证实:

var testObject={};
函数io(){return testObject;}
类Websocket扩展io{
建造商(地址){
超级(地址)
}
消息(){
警报('1')
}
}
让套接字=新的Websocket();
log(“套接字与testObject相同:”+(socket==testObject));

log(“Websocket.prototype.message:+Websocket.prototype.message”)
如果我没弄错的话,
io
是一个函数,因此如果您想继续在其上扩展一个类,就必须使用一些奇特的shmancy构造函数配置。看看这个-如果我没弄错的话,
io
是一个函数,所以如果你想继续扩展类到它上面的话,你必须使用一些奇特的shmancy构造函数配置。看看这个-