0

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

它会影响何时可以调用函数的范围吗?

例如,在函数 inside() 和 outside() 的位置定义中是否有任何问题/差异我应该注意:

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

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

</script>
4

3 回答 3

2

是的,您只能inside从事件回调内部访问该函数ready

document.ready(function(){

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

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

});

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

inside(); // doesn't work
outside(); // works
于 2013-03-10T13:52:15.817 回答
1

它会影响何时可以调用函数的范围吗?

是的,没有别的。

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

于 2013-03-10T13:49:52.537 回答
1

Javascript 具有函数级别范围,这意味着如果您在 document.ready 中定义一个函数,它将在 document.ready 之外不可用

我会像这样在外面定义一个命名空间: var app = {};

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

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

于 2013-03-10T13:58:58.803 回答