Мне нужна глобальная переменная «window.myHub» для установки, которая передается как параметр функции (SignalRSetUp), как показано ниже: способ, которым он передается прямо сейчас , не устанавливает! Как это можно решить?Как передать глобальную переменную как параметр по ссылке в 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