如何在 Javascript 中为回调提供执行函数对象实例
How to provide executing function object instance to a callback in Javascript
我有一个命名空间对象,我已经在上面定义了一些函数。其中一个函数用于创建到远程服务器的 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):
}
}
....
}
在 Javascript 中,据我所知,如果有人使用 ns.Session(....)
调用此函数,那么this
对象将是 ns。那么,我如何获取要发送到回调的"会话"实例。
据我所知,arguments.callee
已被弃用。
这样做的全部原因是,在服务器确认登录之前,会话不被视为"可用",因此我不想在实际连接和登录之前过早返回函数对象。因此使用回调。如果有更好的方法来实现这一目标,我也对此持开放态度。
Session 还有一堆其他的内部函数,如 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
}
另外,我不明白为什么在这种情况下使用"实例"一词,因为函数只有一个实例。如果你用"new"关键字调用它,函数从函数创建新对象,现在你可以使用"实例"这个词。
相关文章:
- 如何做到这一点,使代码在不传递条件后执行函数
- javascript自执行函数-不同的语法
- JavaScript:只有当数组中的所有项都为true时才执行函数
- iFrame url更改时执行函数
- 为什么AngularJS在每个摘要循环上都执行函数
- 如何使用setInterval执行函数
- 当*ngFor以角度2结束时执行函数
- Ajax调用完成后如何执行函数
- 在显示引导弹出窗口之前执行函数
- 从自执行函数返回函数的Javascript性能命中率
- 在操作完成时执行函数
- jquery/js中的自执行函数
- 如何仅在完成对gap.client.youtube的请求.execute后执行函数
- 构造函数函数中的自执行函数的OO上下文/范围
- Javascript未使用=运算符执行函数
- AngularJS:如何按照预定义的顺序执行函数
- 在不使用隔离作用域的情况下执行函数的角度指令
- 如何在页面加载后执行函数是在 AngularJS 中完成的
- 完成页面加载后执行函数
- 如何在完成完全执行函数后触发循环