我对javascript中的机制和层次结构感到困惑,只读了几个链接和页面。
有various ways to create objects in 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}
}
之后我会创建
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和其他函数?它会被调用吗?在函数内部创建的东西应该只在该函数中可见 - 我无法理解流和链接。可能我错过了一些关键概念,否则这应该不起作用。
答案 0 :(得分:0)
ECMAScript是一种语言和javascript,它是特定主机ECMAScript实现的通用名称(注意JavaScript™是Oracle Corporation的商标)。
ECMAScript本身很少,它甚至没有输入或输出机制,它必须由主机提供。关于WebSockets,如果主机支持它们,那么它将实现WebSockets API。
当您通过new WebSocket(...)
创建WebSocket时,主机会返回实现该接口的主机对象。该对象将具有响应其环境(连接,打开,关闭,关闭)而更改的状态,并且当某些事情发生时它将调度事件。
当套接字成功连接到服务器时,它将在套接字上调度 open 事件,这样如果有一个 onopen 监听器,它将响应通过 open 处理程序调用该事件。还有错误和关闭的事件,这些事件与 on * 处理程序相关联。
然后将如何以及谁将致电ServiceA.onopen,Service.onmessage和 其他功能 - 当数据进入这些套接字时?
实现该接口的主机环境可以完成所有这些工作。