Abe*_*Abe 0 javascript callback javascript-events websocket
我有一个名称空间对象,我在其上定义了一些函数.其中一个函数用于创建到远程服务器的websocket会话.
ns.Session = function(url, config, callback){
var ws = new WebSocket(url);
ws.onmessage = function (e){
if(login(e.data)){
// This is the point at which I need to pass back the session object to callback
callback(session):
}
}
....
}
Run Code Online (Sandbox Code Playgroud)
在JavaScript中,据我知道,如果有人调用使用此功能ns.Session(....),则this对象将是纳秒.那么,我如何获得要发送给回调的"会话" 实例.
arguments.callee据我所知,已被弃用.
我这样做的全部原因是,在服务器确认登录之前,会话不被视为"可用",因此我不希望在实际连接和登录之前过早地返回功能对象.因此使用一个回调.如果有更好的方法来实现这一点,我也对此持开放态度.
会议有一堆的其他内部功能,如addHandler,sendData我还没有在这里显示为简洁起见,等等.
你可以使用指针来实现这样的功能:
ns.Session = function session(...) {
// 'session' here points to your function, so you do
callback(session); // like you wrote
callback(ns.Session); // same effect if you don't change ns and ns.Session pointers
}
Run Code Online (Sandbox Code Playgroud)
此外,我不明白为什么在这种情况下使用"实例"一词,因为函数只有一个实例.如果使用'new'关键字调用它,函数会从函数创建新对象,现在您可以使用"实例"字.
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |