JavaScript函数的范围是什么?

时间:2015-07-31 11:11:46

标签: javascript

(如果任何了解这种现象的人对标题有更好的了解,请编辑)

我以为我理解了这一点,但事实证明我错过了一些东西。我得到了Uncaught ReferenceError: refreshAtEndOfProgress is not defined。如果函数及其引用位于不同的<script>块中:

以下代码位于一个网页中:

<script>
    // Note: I am passing the function itself (not calling it) is intentional, it's a callback
    // Got 'Uncaught ReferenceError: refreshAtEndOfProgress is not defined' in the following line:
    var someVariable = new SomeMyObject(refreshAtEndOfProgress);
</script>

<script>
    function refreshAtEndOfProgress() {
        $('#grid').data('kendoGrid').dataSource.read();
        $('#grid').data('kendoGrid').refresh();
    }
</script>

但是如果函数及其引用在同一个脚本块中,那么一切正常,没有错误消息:

<script>
    // No error this case:
    var someVariable = new SomeMyObject(refreshAtEndOfProgress);

    function refreshAtEndOfProgress() {
        $('#grid').data('kendoGrid').dataSource.read();
        $('#grid').data('kendoGrid').refresh();
    }
</script>

我虽然代码在相同或不同的<script>块内并不重要......显然我错过了一些东西。

0 个答案:

没有答案