我需要一个全局变量“window.myHub”来设置哪个作为参数传递给函数(SignalRSetUp),如下所示:它现在传递的方式,不设置它!这怎么解决?如何在javascript中传递全局变量作为参数参考javascript
var args = {
"userObjectId": UserObjectId,
"hubURL": LCSHubApiURL,
"hubName": HubProxyName,
}
var callBackFuncs = {
"ping": PingFunc
}
window.myHub;
var signalRSetUp = new SignalRSetUp(args,callBackFuncs, window.myHub);
SignalRSetUp(argObj,eventFuncs,globalVar)
{
var $self = this;
var connection = $.hubConnection(argObj.hubURL);
var hub = connection.createHubProxy(argObj.hubName);
hub.connection.qs = { "objectid": argObj.userObjectId };
//Wire : Call back functions and the Hub events
for (var e in eventFuncs) {
hub.on(e, eventFuncs[e]);
//hub event fail
}
connection.start()
.done(function() {
globalVar = hub;
})
.fail(function (error) {
console.log('Could not Connect!');
});
}
* Window.myHub *的值为* undefined *,所以这是您传递给* SignalRSetUp *的值并分配给* globalVar *。你不能将一个引用传递给一个变量,你只能传递它的值(注意当你将一个对象赋值给一个变量时,赋值的值就是对该对象的引用)。 – RobG
请设置window.myHub = {};然后看结果 –
为什么你会这样做呢?为什么你不能简单地从该函数返回集线器? – Bergi