我正在尝试创建自己的WebSocket类。
function WebConnect(){
WebSocket.call(this, "wss://ws.achex.ca/")
}
WebConnect.prototype = Object.create(WebSocket.prototype);
WebConnect.prototype.onopen = function(evt){ console.log(evt) }
...
WebConnect.prototype.anotherWsFunction = function(){...}
但是当我尝试创建此课程var a = new WebConnect()
时,我遇到了这个错误:
" Uncaught TypeError:无法构建' WebSocket':请使用' new'运算符,此DOM对象构造函数不能作为函数调用。"
我不明白我做错了什么。
我试图这样做,因为我想定义已经定义的" onopen,onclose,.." 事件加上我创建这个类时的一些自定义方法,所以我可以稍后在另一个类中使用它们
function SOCKET(props){
this.websocket = new WebConnect();
this.lobby = new Lobby();
...
}
编辑:
class WebConnect extends WebSocket {
constructor(wsuri) {
super(wsuri)
}
onopen(event) {
console.log("Connection open event:");
console.log(event);
}
onclose(event) {
console.log("Connection closed event:");
console.log(event);
}
onerror(event) {
console.log("Connection error event:");
console.log(event);
}
onmessage(event) {
console.log("Message event:");
console.log(event);
}
}
在@PatrickRoberts发表评论之后,ES6课程的方法也不起作用
如果var a = new WebConnect(wsuri)
则a.onopen == null
编辑: 有什么想法吗?现在我使用包装器。但它是否有可能做到这一点" class extend"方式是什么?