正因为如此,我们帮助理解,如果你定义 store 它window.connection就是在 javacript 中隐式创建 window 对象的成员变量。
Javascript 允许您“即时”创建函数和成员变量,这很强大,但很容易被滥用。我个人尝试创建一些由全局命名空间中声明的目的分隔的全局对象。
您可以通过以下方式执行相同操作(如果您使用 jquery):
$().ready(function() {
   var g_someGlobalState = true;
   var g_someGlobalCounter = 0;
   // etc.
});
我认为这通常是不好的做法,因为这些声明对于所有 javascript 库都是全局的,并且您可能会遇到命名冲突。通常最好将自定义命名空间应用于您的代码,以确保不会发生冲突。
我使用从以下位置获得的 jquery 中的辅助命名空间函数来执行此操作:http:
 //elegantcode.com/2011/01/26/basic-javascript-part-8-namespaces/
$().ready(function() {
  function namespace(namespaceString) {
    var parts = namespaceString.split('.'),
      parent = window,
      currentPart = '';
    for (var i = 0, length = parts.length; i < length; i++) {
      currentPart = parts[i];
      parent[currentPart] = parent[currentPart] || {};
      parent = parent[currentPart];
    }
    return parent;
  }
  // Declare global storage
  var MyAppName_GlobalSettings = namespace('MyAppName.Settings');
  // Assign variables
  MyAppName_GlobalSettings.connection = $.connection.hub.start();
});
现在,在这个 javascript 页面中,无论何时你想访问这个连接,你都可以简单地参考MyAppName_GlobalSettings.connection