我有一个巨大的JS文件,它具有旧式函数和变量定义:它将所有内容放在全局范围内。我希望能够导入'该文件位于'名称空间'所以全球范围保持良好和干净。
'庞大的文件'是由Apache CXF的WSDL2JS工具生成的Web服务客户端。它将数百个函数和变量放到全局范围内,有一个小的sample of that file on 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的替代品?
提前致谢。
答案 0 :(得分:1)
你需要从外面调用它的功能吗?如果没有,只需将现有代码封装在immediately evaluated function expression:
中(function(){
//code goes here
}());
并在每个全局声明的前面添加'var'。