84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
質問 1: 関数は作成時にコンテキストを宣言し、実行時にスコープ チェーン内のローカル変数を更新します。スコープ チェーンには、実行時に関数内のローカル変数が含まれます。さらに混乱を招くのは、未使用の関数が実行時に、未使用の関数が確実にoriginalThingを参照することをどのようにして確認できますか? 質問 2: このメモリ リークをどう説明しますか? 専門家がもっと詳しく説明してくれることを願っています。
问题1: function(replaceThing)内的变量在离开了它的作用域后,如果这个function(replaceThing)在使用一次后,直到程序执行完也没有再引用,过一段时间就会被回收。
问题2: 你看看thething赋值动作,其中的创建数组动作可是一直在做,一次1000000做join操作,不断执行,内存回收的速度跟不上它增长的速度,很快导致内存泄露。
theThing = { longStr: new Array(1000000).join('*'), someMethod: function () { console.log(someMessage); } };
问题1: function(replaceThing)内的变量在离开了它的作用域后,如果这个function(replaceThing)在使用一次后,直到程序执行完也没有再引用,过一段时间就会被回收。
问题2: 你看看thething赋值动作,其中的创建数组动作可是一直在做,一次1000000做join操作,不断执行,内存回收的速度跟不上它增长的速度,很快导致内存泄露。