我有这样一个js代码:
function Global(params) {
...
}
var g = {
onDocLoad: function() {
// on DOM load I instantiate the Global function-constructor
// which is above this line, so it is already in scope
var global = new window.Global(params);
}
window.addEventListener("load", g.onDocLoad, false);
如果我将此文件用作静态文件,而不进行预编译,则一切正常。
如果我预编译它:
rake assets:precompile:all RAILS_ENV=development
然后刷新我得到的页面:
Uncaught TypeError: object is not a function
正好与new window.Global(params);
. 它说这Global
不是一个功能。但这不可能是真的。它是一个函数。
我调试了那条线,发现在到达这条线时,Global
它null
在全局范围内。没有这样一个名字的函数。
我的问题类似于这些问题:
Javascript“未捕获的类型错误:对象不是函数”关联性问题
但他们的解决方案不适用于我的情况。
可能是什么问题?为什么预编译会破坏工作代码?