質問

プログラム内のコードの順序に問題があります。現在、 document.ready(function(){}); にはいくつかのことがあり、その外側にはいくつかのものがあります。 (コードを整理または改善するために)何かを移動するたびに、何かを壊すことになります。宣言の順序またはアクセスレベル(つまり、 document.ready(function {}); はその中の何かにアクセスできません。

誰もがJavaScriptが賢明な場所にあるべきかについての洞察を持っていますか?

すべてが document.ready(function(){}); 内にあるべきですか?
document.ready(function(){}の外に何かを置く理由はありますか? );
document.ready(function(){}); 内のコードは、外部コードからアクセスできませんか?

役に立ちましたか?

解決

  

1。すべてが内にあるべきか   document.ready(function(){});?

いいえ、document.ready関数は、初期化、イベントハンドラーの割り当てなどにのみ使用する必要があると思います。

  

2。持っている理由はありますか   以外のもの   document.ready(function(){});?

コードの再利用、およびより良いコード編成。

  

3。コードは   document.ready(function(){});   外部コードからアクセスできませんか?

はい、document.readyで作成された変数とオブジェクトは外部スコープからアクセスできません。

他のヒント

すべてがdocument.ready(function(){});内にあるべきですか?

はい、いいえ。大規模なJavaScriptアプリケーションでは、このイベントハンドラーからメインコントローラーをグローバルスコープに初期化します。ただし、DOMの準備が整うまで待つ必要のないコード、特に DOMに依存しないコードがあります。それはかなり簡単だと思います。たとえば、このイベントハンドラーの外部で構成オブジェクトクラス、関数などを宣言します。

document.ready(function(){});の外側に何かを置く理由はありますか?

確かに、上記の理由で触れました。主に、DOMの相互作用を必要としないコードは、特にDOMの読み込みと非同期に実行できる場合(たとえば、関数定義、構成オブジェクトなど)、DOMの読み込みを待つべきではありません。

また、すべてのコードを1つのイベントハンドラーに含めないことで、より整理された状態を保ち、コードのモジュール化、適切なデザインパターンの使用などが可能になります。

document.ready(function(){});内のコードです外部コードからアクセスできませんか?

もう一度、はい、いいえ。 var でローカルとして宣言した場合はyesになります。イベントハンドラに対してローカルであるため、外側のスコープからアクセスできません。それ以外の場合は、グローバルスコープ内にあり、外部スコープからアクセスできます。次に例を示します(ここでホスト: http://jsbin.com/uriqe

JavaScript

var foo = function() {
  alert(global);
  return false;
}

$(document).ready(function() {
  global = "you can see me!?";
  alert("global is initiated");
});

HTML

<body>
  <p><a href="#" onclick="foo()">click me</a></p>
</body>
$(document).ready()の控えめなメソッドイベント添付ではなく、

onclick は、 foo クロージャープロパティを介して global にアクセスできます。

編集:前の文で明確にしたと思いましたが、 onclick は意図的にグローバルスコープとクロージャープロパティの混乱を避けるために使用されますが、 onlick の使用を推奨していません。もちろん悪い習慣であり、使用すべきではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top