文档准备是否干扰引用外部javascript函数



当运行以下脚本时,我没有收到任何警告。当我删除$('document')。准备好了,我收到警报了。美元("文件")。准备在外部js文件中引用函数的问题?如果是,为什么?

scriptOne.js

$('document').ready(function(){
    function derp () {
        alert('derp');
    }
});

scriptTwo.js

$('document').ready(function(){
    derp();
});

derp.html

<script src='scriptOne.js' type='text/javascript'></script>
<script src='scriptTwo.js' type='text/javascript'></script>

记住javascript有函数作用域。因此,在本例中,函数derp()只存在于scriptOne.js中定义的匿名函数中。

这意味着它不能从scriptTwo.js

访问

如果您从第一个文件中删除$('document').ready并只定义函数,它将被全局定义。

另外,(正如其他人提到的)你不需要在document

周围加单引号。

关于函数作用域的更多信息

最新更新