我正在ES6中迁移我的reactjs应用程序。它使用了一些外部javascript,它以旧方式定义全局变量而没有导出。我无法改变和保持不变。
当引用该文件中的函数时,对于没有关键字var / const定义的函数,我得到uncaught referenceerror
。
在ES6中使用此类文件的正确方法是什么?
例如,如果旧的第三方js文件包含以下代码。在浏览器中执行期间,我收到了ClassicClient未被捕获的引用错误。
ClassicClient = function(x, y){
return x+y;
}
答案 0 :(得分:0)
既然您可能正在使用某些东西(Babel?)从ES6转换到ES5以及某些模块捆绑器(Webpack?),您的捆绑包有"use strict"
,使其在严格模式下运行,而不是允许没有window.
前缀的全局变量。请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode#Converting_mistakes_into_errors
我不确定是否可以为一个特定模块或全局禁用严格模式。检查:How to remove global "use strict" added by babel