繁体   English   中英

如何在不修改的情况下封装(和命名空间)现有的大javascript文件?

[英]How to encapsulate (and namespace) existing big javascript file without modifying it?

抽象

我有一个巨大的JS文件,其中包含旧样式的函数和变量定义:它将所有内容放入全局范围。 我希望能够在“名称空间”中“导入”该文件,以便全局范围保持整洁。

细节

“巨大文件”是由WSDL2JS工具从Apache CXF生成的Web服务客户端。 它会将数百个函数和变量置于全局范围内, 在pastebin上有一小部分该文件的示例 我想继续使用该工具,但将生成的JS保留在某种命名空间或单独的范围内。 是否可以使用某些工具或最少的人工干预?

样品

这是来自WSDL2JS的包装在实际上不起作用的自调用函数中的代码。 可以在http://jsfiddle.net/rozboris/26t5nwmx/上进行测试和编辑

var testModule = (function(){
  //here starts the generated code that I don't want to touch
  function priv(){
    console.log('called private function');
  }

  function proto(){
    this.something = 'hello';
  }

  priv.prototype = new proto;
  //here ends the generated code that I don't want to touch

  return {
    priv: priv
  }

})();

testModule.priv.something; //undefined

附带问题

是否有更好的工具来使用JS(在浏览器中)基于wsdl的Web服务? Apache CXF是否可以替代WSDL2JS?

提前致谢。

您是否需要从外部调用其功能? 如果不是,那么只需将现有代码包含在立即求值的函数表达式中即可

(function(){
    //code goes here
}());

并在每个全局声明的前面添加“ var”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM