如何在本地重新定义对象变量?对于普通变量,我会在函数内部使用let
,但是let
似乎不适用于对象变量。有办法吗?
以下代码显示,我可以使用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
}
*/
答案 0 :(得分:1)
没有局部属性,只有局部变量。
如果要临时更改对象属性,请将旧值保存在局部变量中:
function A() {
let oldFileName = options.soundFileName;
options.soundFileName = 'audio/60.wav';
// do stuff
// ...
options.soundFileName = oldFileName;
}