Способ закрытия строки меню машинописного текста

#javascript #typescript #object #oop #for-in-loop

Вопрос:

Так что код работает благодаря моему профессору. Но я не понимаю, почему это работает. Я хорошо разбираюсь в javascript и машинописи, но этот метод кода сбивает меня с толку.

Этот метод является решением проблемы обеспечения того, чтобы в любое время можно было открыть только один переключатель меню.

Исходя из моей ошибочной логики, этот метод / (функция) должен сделать все внутри объекта ложным, но каким-то образом сообщает меню «Открыть» при 2-м щелчке, чтобы закрыть себя.

Надеюсь, что некоторые из вас, блестящие учителя, помогут мне понять, почему это работает, чтобы я мог глубже погрузиться в темную сторону ООП js и машинописи.

примечание: машинопись находится в строгом режиме.

 boolTbl: {[key: string]: boolean} = {
    markBool : false,
    modelBool : false,
    fuelTypeBool: false,
    yearBool : false,
    milesBool : false,
    priceBool : false,
  }

closeOtherMenues(state:string):void{
    for (const a in this.boolTbl){
      if (a !== state) { this.boolTbl[a] = false; }
    }
    this.boolTbl[state] = !this.boolTbl[state];
  }

 

Комментарии:

1. for...in Цикл действительно устанавливает все ложно, но следующая строка выбирает меню (?) с параметром функции и устанавливает его в противоположность тому, что было раньше: this.boolTbl[state] = !this.boolTbl[state];