#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];