无法从其他文件访问javascript变量

时间:2017-04-06 13:39:39

标签: javascript html

我无法访问在单独文件中声明的全局声明的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

加载页面。当我按照适当的顺序包含脚本时,会出现这种情况的原因吗?

2 个答案:

答案 0 :(得分:2)

window.yourGlobalVariable

使用window.variable name在文件之间获取变量。

答案 1 :(得分:0)

问题是因为变量是在函数中定义的。将其移出函数或使用window.varName

&#13;
&#13;
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;
&#13;
&#13;

如果您想了解更多信息,建议您阅读JS scopes