我无法访问在单独文件中声明的全局声明的javascript变量。 我的代码:
<script src="scripts/one.js"></script>
<script src="scripts/two.js"></script>
One.js:
var config = {
form: 'form',
validate: {
'#first-name': {
'validation': 'required',
'error-msg': 'Required Field'
},
// other validation rules
}
};
Two.js:
$.validate({
modules: 'jsconf',
onModulesLoaded: function () {
$.setupValidation(config);
}
});
我收到了错误
Uncaught ReferenceError: config is not defined
加载页面。当我按照适当的顺序包含脚本时,会出现这种情况的原因吗?
答案 0 :(得分:2)
window.yourGlobalVariable
使用window.variable name在文件之间获取变量。
答案 1 :(得分:0)
问题是因为变量是在函数中定义的。将其移出函数或使用window.varName
var a = 1;
// File 1
$(function() {
var b = 2;
window.d = 4;
console.log(a);
});
// File 2
$(function() {
var c = 3;
console.log(a);
console.log(d);
console.log(b); // This will throw an error because b is not defined in this scope
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
如果您想了解更多信息,建议您阅读JS scopes。