[英]How to redefine object variable in local scope
如何在本地重新定義對象變量? 對於普通變量,我將在函數內部使用let
,但let
似乎不適用於對象變量。 有辦法嗎?
下面的代碼顯示,我可以使用options.soundFileName = 'audio/60.wav';
來全局重新定義變量options.soundFileName = 'audio/60.wav';
。 但是如果我使用let options.soundFileName = 'audio/60.wav';
。
var options = { soundFileName: 'audio/01.wav', }; (function masterStart() { setInterval(function () { console.log('sound name global: ' + options.soundFileName) }, 1000); }()); A(); function A() { options.soundFileName = 'audio/60.wav'; // redefines sound file but globally // how can i redefinie it only within `A()`? } /* B(); function B() { let options.soundFileName = 'audio/60.wav'; // doesn't work at all } */
沒有局部屬性,只有局部變量。
如果要臨時更改對象屬性,請將舊值保存在局部變量中:
function A() {
let oldFileName = options.soundFileName;
options.soundFileName = 'audio/60.wav';
// do stuff
// ...
options.soundFileName = oldFileName;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.