我会简短。我试图了解 evt 如何传递给 webSocket.onopen :
wsUri = 'ws://echo.websocket.org/';
webSocket = new WebSocket(wsUri);
//How is evt actually passed?
webSocket.onopen = function (evt) {
onOpen(evt);
}
function onOpen(evt) {
writeOutput("CONNECTED");
}
function writeOutput(message) {
var output = $('#divOutput');
output.html(output.html() + '<br />' + message);
}
我了解到我可以用jQuery完成同样的事情:
//This approach I get
$(webSocket).on('open', function(evt) {
onOpen(evt);
})
据我所知,这两个是回调。我一直主要使用这样的回调:
function(callback) {
callback();
}
最初的例子对我来说似乎并不清楚,也许是因为我不习惯普通的JavaScript,或者还有其他我完全错过的东西。
答案 0 :(得分:0)
webSocket.onopen = function (evt) {
onOpen(evt);
}
websocket传递 evt
。在上面的代码中,您将在opensocket上设置一个侦听器函数。这意味着当websocket打开时,将调用分配给webSocket.onopen
的函数。就像onMessage或onClose一样。没有实际需要写另一个onOpen(evt)
,只需要做这样的事情:
webSocket.onopen = function (evt) {
writeOutput("CONNECTED");
//other codes
}
它与观察者模式几乎相似。你可以检查观察者模式,看看这是如何在内部完全工作。简而言之,在这些类型的示例中,它涉及将方法(函数)分配给在事件发生时被调用的引用。