teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

JSのGCの参照カウンタについて言及

2018/06/15 05:23

投稿

miyabi_pudding
miyabi_pudding

スコア9559

answer CHANGED
@@ -30,4 +30,18 @@
30
30
  ```
31
31
 
32
32
  実際試したわけではないので、ご了承ください。
33
- 間違っていたらご指摘いただければと思います。
33
+ 間違っていたらご指摘いただければと思います。
34
+
35
+
36
+ また、NodeというかDOMオブジェクトに関しては、
37
+ GCの扱いが違うようです。
38
+ 他の言語にも見られる参照カウンタというものがあり、それが0にならない限り、
39
+ その変数は解放されないようです。
40
+ (HTML上で、JSでDOMのコントロールをする場合、プロトタイプチェーンもありますし、
41
+ 自動的に付加されるイベントもあるので、参照カウンタという概念が必要なのだと思います)
42
+
43
+ 下記記事が非常に参考になるかと思います。
44
+ [DOM オブジェクトとメモリリーク: Days on the Moon](http://nanto.asablo.jp/blog/2005/12/04/165848)
45
+
46
+ think49さんの回答もかなり核心だと思いますので、
47
+ その辺あたり(参照カウンタとか)で、調べて見てはいかがでしょうか?

1

配列の宣言キーワードを、constに修正

2018/06/15 05:22

投稿

miyabi_pudding
miyabi_pudding

スコア9559

answer CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```javascript
6
6
  // Nodeを入れるための配列を外で定義
7
- let liArr = new Array(0);
7
+ const liArr = new Array(0);
8
8
  const ul = document.getElementById("list");
9
9
 
10
10
  document.getElementById("addListItem").addEventListener("click", () => {