Javascript ES6类扩展了套接字IO
我正在做一个项目,我需要扩展 socket.io客户端 去上课,现在我没法上课,有人能帮忙吗DJavascript 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
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构造函数配置。看看这个-