新手:Javascript、Jquery类和对象

新手:Javascript、Jquery类和对象,javascript,websocket,Javascript,Websocket,我对javascript中的机制和层次结构感到相当困惑,阅读了一些链接和添加到其中的页面 有。我感到困惑的是: 我有3个websocket,分别是WSServiceA、WSServiceB、WSServiceC:这是3个不同的套接字,提供不同的数据,但数据结构是相同的。使用一个简单的函数,我正在更新网页中的3个表 每一个都有onopen、onclose和onmessage函数,所以我简单地复制了相同的代码3次,如下所示: WSServiceA.onmessage(){} WSServiceB.o

我对javascript中的机制和层次结构感到相当困惑,阅读了一些链接和添加到其中的页面

有。我感到困惑的是:

我有3个websocket,分别是WSServiceA、WSServiceB、WSServiceC:这是3个不同的套接字,提供不同的数据,但数据结构是相同的。使用一个简单的函数,我正在更新网页中的3个表

每一个都有onopen、onclose和onmessage函数,所以我简单地复制了相同的代码3次,如下所示:

WSServiceA.onmessage(){}
WSServiceB.onmessage(){}
WSServiceC.onmessage(){}
function CreateService(Service, WSAddress){
      this.service=Service;
      this.WSAddress = WSAddress;
      this.websocket = new WebSocket(this.WSAddres);
      this.onopen = function(event){ Send some message }
      this.onmessage = function(event){ Update Table A}
    }
如果我创建一个类似这样的

WSServiceA.onmessage(){}
WSServiceB.onmessage(){}
WSServiceC.onmessage(){}
function CreateService(Service, WSAddress){
      this.service=Service;
      this.WSAddress = WSAddress;
      this.websocket = new WebSocket(this.WSAddres);
      this.onopen = function(event){ Send some message }
      this.onmessage = function(event){ Update Table A}
    }
之后,我将创建

ServiceA = CreateService("A", "ws://192.168.100.1.1:10001");
ServiceB = CreateService("B", "ws://192.168.100.1.2:10001");
ServiceC = CreateService("C", "ws://192.168.100.1.3:10001");
那么,当数据到达这些套接字时,将如何以及由谁调用ServiceA.onopen、Service.onmessage和其他函数?它会被叫来吗?函数内部创建的东西应该只在该函数中可见-我无法理解流和链接。可能我遗漏了一些关键概念,或者这不应该起作用。

Background 还有ECMAScript,它是一种语言,还有javascript,它是特定主机的ECMAScript实现的通用名称(注意javascript™ 是甲骨文公司的商标)

ECMAScript本身做的很少,它甚至没有用于输入或输出的机制,它必须由主机提供。对于WebSocket,如果主机支持它们,那么它将实现

当您通过
新建WebSocket(…)
创建WebSocket时,主机将返回一个实现该接口的主机对象。对象的状态会随着其环境(连接、打开、关闭、关闭)的变化而变化,当某些事情发生时,它会调度事件

当套接字成功连接到服务器时,它将在套接字上调度一个open事件,因此如果有onopen侦听器,它将通过被open处理程序调用来响应该事件。还存在与*处理程序关联的错误和关闭事件

答复 那么如何以及谁将调用ServiceA.onopen、Service.onmessage和 其他功能-当数据到达这些套接字时


实现接口的主机环境完成了所有这些

在onopen函数中,您应该可以通过引用
this
访问套接字,如果没有,您可以使用
bind
创建一个函数,将其绑定到对象,或者从开始。如果您不了解事件,可能会有所帮助。这些
.on
*是事件侦听器,当相应的事件将触发时,它们将侦听事件并执行回调函数。