Как переопределить переменную объекта в локальной области видимости - PullRequest
0 голосов
/ 22 февраля 2019

Как я могу переопределить переменную объекта локально?С нормальной переменной я бы использовал 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
  
 }
 */

1 Ответ

0 голосов
/ 22 февраля 2019

Локальных свойств не существует, только локальные переменные.

Если вы хотите временно изменить свойство объекта, сохраните старое значение в локальной переменной:

function A() {
    let oldFileName = options.soundFileName;
    options.soundFileName = 'audio/60.wav';
    // do stuff
    // ...
    options.soundFileName = oldFileName;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...