0

document.ready または not 内で関数を定義することの違いは何ですか?

関数を呼び出すことができる範囲に影響しますか?

例として、関数 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() {

その後、アプリのグローバル名前空間で内部が利用可能になります。

于 2013-03-10T13:58:58.803 に答える