jsの関数名は関数オブジェクトへのポインタなのでメモリを参照しているのでしょうか? `
` では、手動で破壊するにはどうすればよいでしょうか?ブラウザをリサイクルする前にグローバル変数を閉じる必要がありますか?ありがとう###
最初のvar a会在stack里面开一块空间,然后你将他赋给一个function,是一个引用类型,于是又在heap里面又申请一块空间存放function,此时,stack里面的a存放的是functionのアドレス
var a
stack
function
heap
a
その理由は以下の通りですb赋值给a,是将stack里面a指向的heap里面function的地址赋给b,所以这就是为什么后来a指向了null,但是b仍然指向之前heap里面function。
b
null
どうやって破壊するの? b也设置为null または他の値を変更するだけです。したがって、この種の変数にはグローバル変数を書かずに、ローカル変数を書くようにしてください。
それはメモリへの参照ですか? この質問は少し広義すぎます。データはメモリに保存されているので、メモリを参照するのは自然なことです。しかし、メモリを参照するだけでは不十分です。データを保存するためのものであり、データ間の関係を反映することはできません。そのため、メモリを直接参照するわけではありません。途中に隠れた処理が存在します。具体的な詳細はわかりませんが、レベルが低すぎます さらに、リサイクルには 2 つの方法があります:
通常は方法 1 を使用してください。オーバーフローの心配はありません。データが一定量に達したときなど、さまざまなタイミングで自動リサイクルがトリガーされます。
リーリー
js は delete を使用して手動で変数をリサイクルできます
ガベージ コレクション メカニズムについて: IE の古いバージョンでは、DOM は COM オブジェクトの形式であり、循環参照がある場合は参照カウントを使用してクリアされます。メモリを解放する機会はありません。 標準ブラウザでは、手動で参照を解放し、null に設定するだけでメモリを解放できます。
参照が逆参照されていない場合、メモリは実行環境が終了するまで解放されず、グローバル変数オブジェクトはグローバル実行環境が終了するまで解放されません。つまり、ブラウザが閉じるまで解放されません。 。
最初の
var a
会在stack
里面开一块空间,然后你将他赋给一个function
,是一个引用类型,于是又在heap
里面又申请一块空间存放function
,此时,stack
里面的a
存放的是function
のアドレスその理由は以下の通りです
b
赋值给a
,是将stack
里面a
指向的heap
里面function
的地址赋给b
,所以这就是为什么后来a
指向了null
,但是b
仍然指向之前heap
里面function
。どうやって破壊するの?
b
也设置为null
または他の値を変更するだけです。したがって、この種の変数にはグローバル変数を書かずに、ローカル変数を書くようにしてください。それはメモリへの参照ですか? この質問は少し広義すぎます。データはメモリに保存されているので、メモリを参照するのは自然なことです。しかし、メモリを参照するだけでは不十分です。データを保存するためのものであり、データ間の関係を反映することはできません。そのため、
リーリー リーリーメモリを直接参照するわけではありません。途中に隠れた処理が存在します。具体的な詳細はわかりませんが、レベルが低すぎます
さらに、リサイクルには 2 つの方法があります:
通常は方法 1 を使用してください。オーバーフローの心配はありません。データが一定量に達したときなど、さまざまなタイミングで自動リサイクルがトリガーされます。
リーリー
js は delete を使用して手動で変数をリサイクルできます
ガベージ コレクション メカニズムについて:
IE の古いバージョンでは、DOM は COM オブジェクトの形式であり、循環参照がある場合は参照カウントを使用してクリアされます。メモリを解放する機会はありません。
標準ブラウザでは、手動で参照を解放し、null に設定するだけでメモリを解放できます。
参照が逆参照されていない場合、メモリは実行環境が終了するまで解放されず、グローバル変数オブジェクトはグローバル実行環境が終了するまで解放されません。つまり、ブラウザが閉じるまで解放されません。 。