Javascript Typescript菜单栏关闭方法

Javascript Typescript菜单栏关闭方法,javascript,typescript,object,oop,for-in-loop,Javascript,Typescript,Object,Oop,For In Loop,多亏了我的教授,代码才起作用,但我不明白它为什么起作用。 我在javascript和typescript方面还行,但这个代码方法让我感到困惑 该方法是确保在任何时候只能打开一个菜单选择器的解决方案 从我的错误逻辑来看,这个方法/(函数)应该使对象内部的所有内容都为假,但不知何故,它会在第二次单击时通知“打开”菜单自行关闭 希望你们中一些优秀的老师能帮助我理解它为什么会起作用,这样我就可以深入到OOP js和Typescript的黑暗面 注意:typescript处于严格模式 for…in循环确实

多亏了我的教授,代码才起作用,但我不明白它为什么起作用。 我在javascript和typescript方面还行,但这个代码方法让我感到困惑

该方法是确保在任何时候只能打开一个菜单选择器的解决方案

从我的错误逻辑来看,这个方法/(函数)应该使对象内部的所有内容都为假,但不知何故,它会在第二次单击时通知“打开”菜单自行关闭

希望你们中一些优秀的老师能帮助我理解它为什么会起作用,这样我就可以深入到OOP js和Typescript的黑暗面

注意:typescript处于严格模式


for…in
循环确实将所有内容设置为false,但下一行选择带有函数参数的菜单(?),并将其设置为与之前相反的内容:
this.boolTbl[state]=!这个.boolTbl[州]
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];
  }