タグ

ブックマーク / ja.javascript.info (2)

  • WeakMap と WeakSet

    チャプター ガベージコレクション で学んだ通り、JavaScriptエンジンは、それが到達可能な(そして潜在的に利用される可能性がある)間、メモリ上に値を保持しています。 例: let john = { name: "John" }; // オブジェクトへはアクセス可能です。john がその参照を持っています // 参照を上書きします john = null; // オブジェクトはメモリから削除されるでしょう 通常、オブジェクトまたは配列の要素、もしくは別のデータ構造のプロパティは到達可能と考えられ、そのデータ構造がメモリにいる間は保持され続けます。 例えば、あるオブジェクトを配列に入れた場合、その配列が生きている間は、他の参照がなくてもそのオブジェクトは生きていることになります。 例:

    WeakMap と WeakSet
  • バブリング と キャプチャリング

    例から始めましょう。 このハンドラは <div> へ割り当てられますが、<em> や <code> のような任意のネストされたタグをクリックしたときにも実行されます: <div onclick="alert('The handler!')"> <em>If you click on <code>EM</code>, the handler on <code>DIV</code> runs.</em> </div> 不思議ですよね?実際にクリックしたのは <em> でしたが、 <div> のハンドラが実行されるのはなぜでしょう? バブリング(Bubbling)バブリングの原理はシンプルです。 要素上でイベントが発生すると、最初にその要素上のハンドラが実行され、次にその親要素のハンドラが実行され、さらに他の祖先を実行します。 たとえば、3つのネストされた要素 FORM > DIV > P があ

    バブリング と キャプチャリング
  • 1