定义document.ready中的函数与否之间的区别

时间:2013-03-10 13:48:28

标签: javascript jquery

在document.ready中定义一个函数有什么区别?

它是否影响可以调用函数的范围?

例如,在()&amp ;;中的函数的位置定义中我是否应该注意任何问题/差异?外():

<script>
document.ready(){
 function inside(){
    alert('inside');
 }
}

 function outside(){
    alert('outside');
 }

</script>

3 个答案:

答案 0 :(得分:2)

是的,您只能从inside事件的回调中访问ready函数:

document.ready(function(){

  function inside(){
    alert('inside');
  }

  inside(); // works
  outside(); // works

});

function outside(){
  alert('outside');
}

inside(); // doesn't work
outside(); // works

答案 1 :(得分:1)

  

它是否影响可以调用函数的范围?

是的,没有别的。

(尽管您的具体示例取决于您首先向ready()对象添加document方法。)

答案 2 :(得分:1)

Javascript具有功能级别范围,这意味着如果您在document.ready中定义一个函数,它将无法在document.ready

之外使用。

我会像这样定义一个名称空间:     var app = {};

然后像这样定义你的内部函数:     app.inside = function(){

然后内部将在您的应用程序全局命名空间中可用。