我有一個類使用遞歸在打字機風格的角色對話屏幕中播放 blip 音效:class DialogueBox extends Component{ constructor(props){ super(props) this.state = {... } ... } typeWriter(txt,i,speed=50) { if(i==txt.length){ ... return } else{ // a blip sound effect plays on every new character typed let sfx = new Audio(speechBlip); sfx.play(); ... setTimeout(()=>this.typeWriter(txt,i+1,speed),speed); } }let sfx = new Audio(speechBlip)注意被多次實例化的局部變量。這會導致內存中存儲大量永遠不會被清理的 Audio 對象嗎?我使用這種方法是因為我喜歡它聽起來比在構造函數中創建一個 Audio() 并將其重新設置為 0 時間或僅在文件播放完成時重播更喜歡它。這種方法會嚴重拖累內存嗎?我嘗試使用開發工具的內存面板,但我不確定我是否正確解釋它并且不確定它將如何擴展......
JavaScript - 局部類變量會被垃圾收集嗎?
大話西游666
2022-12-22 10:04:08