Javascript 在JS中访问外部对象

Javascript 在JS中访问外部对象,javascript,node.js,Javascript,Node.js,到目前为止,我知道有一些方法可以访问JavaScript中的外部对象,如下所示 通过默认的JS作用域规则,如果函数A中有函数B,那么B中的脚本将有权访问函数A和包含函数A的任何函数所拥有的变量 通过this关键字:对函数声明B的简单函数调用,this在函数B中可以访问全局上下文 通过全局对象,例如NodeJS中的global,以及在web浏览器中运行的JS中的window 我想删除函数B的外部引用,并说我用上面的3个选项做了一些事情。除了这三种方式之外,我还有其他方式可以访问外部对象吗?类似的方

到目前为止,我知道有一些方法可以访问JavaScript中的外部对象,如下所示

  • 通过默认的JS作用域规则,如果函数A中有函数B,那么B中的脚本将有权访问函数A和包含函数A的任何函数所拥有的变量
  • 通过
    this
    关键字:对函数声明B的简单函数调用,
    this
    在函数B中可以访问全局上下文
  • 通过全局对象,例如NodeJS中的
    global
    ,以及在web浏览器中运行的JS中的
    window

  • 我想删除函数B的外部引用,并说我用上面的3个选项做了一些事情。除了这三种方式之外,我还有其他方式可以访问外部对象吗?

    类似的方式如何

    var myApp = (function(window, $, ...lib references) {
      // everything defined in this scope will not clash with things defined in global
    
    })(window, jQuery, lib2, lib3, lib4, ...other libs);
    
    还可以尝试阅读“javascript设计模式”

    请阅读以下内容:

    所有这些的基础是作用域和闭包。研究Angular、Ember和Durandal等框架如何处理对象。我建议使用一些顶级“名称空间”对象来组织代码。