JS全局变量“丢失”内部功能?

时间:2016-11-30 14:14:09

标签: javascript variables scope global-variables

由于某些原因,我不得不在文档的末尾声明一个变量,这是它的外观:

<script src="/path/to/jquery.js"></script>
<!-- other libraries are here -->

<script type="text/javascript">
    var myImportantVariable = someIntValue;
</script>

<script src="/my/own/scripts.js"></script>
</body></html>

现在,在scripts.js内我想使用该变量,但在某些时候它变得未定义:

jQuery(document).ready(function () {
    $("#myDOMelement").someExistingAndWorkingFunction(function() {
        // <--- here myImportantVariable value is correct
        myOtherFunction($(this).val());
    });
});

function myOtherFunction($valueArgument)
{
    // <--- here myImportantVariable is undefined
}

我不确定,发生了什么。我也尝试在最后声明变量(在链接所有脚本之后)和document ready块内部,没有任何作用。我认为它应该可以从函数中访问,但事实并非如此。你能解释一下,为什么?

编辑回答评论中的问题:

  • 我无法在myImportantVariable内声明scripts.js,它是动态的
  • myDomElement是输入的ID
  • $(this).val()被正确获取(在块内的调试器上检查,myImportantVariable仍然正确)
  • 并将其正确传递给myOtherFunction(在myOtherFunction开头的调试器上检查)
  • myOtherFunction的开头(已检查...正确!调试器!),myImportantVariable突然未定义

0 个答案:

没有答案