1 функция с аргументом вместо двух, Nuxt js

95
02 ноября 2021, 23:00

Я работаю с Nuxt JS. Я пытаюсь практиковать свои навыки в js, в коде есть пара функций с одинаковым функционалом только для разных элементов. Можно ли как-то объединить эти две функции в одной, сделать универсальную с передачей аргумента?

 openOutSettings() { 
    this.isOutOpen = !this.isOutOpen;  
  }  
  openInSettings() { 
    this.isInOpen = !this.isInOpen;  
  } 

Думала реализовать нечто похожее

 openSettings(first, second) { 
 if (first) { 
    this.isOutOpen = !this.isOutOpen; } else { 
    this.isInOpen = !this.isInOpen;} 
  } 
<div @click="openSettings(first)"></div> 
<div @click="openSettings(second)"></div>

Но этот код не работает для меня. Подскажите, как правильно написать универсальную функцию в моем случае?

Answer 1

Можно сделать что-то вроде такого, хотя это и будет немного неправильно. Неправильно потому что явное - всегда лучше не явного.

 toogle(property) {
    this[property]= !this[property]; 
  } 
<div @click="toogle('isOutOpen')"></div>
<div @click="toogle('isInOpen')"></div>
READ ALSO
Замена querySelector на getElementById

Замена querySelector на getElementById

Пытаюсь поменять querySelector на getElementById в строке

193
Добавление/удаление класса к элементу

Добавление/удаление класса к элементу

Есть несколько строк в таблице с такой структурой:

106
setTimeout() и стэк

setTimeout() и стэк

разбираюсь с debouncing и throttling, основу работы setTimeout() и setInterval() понимаю, но код ниже меня запутывает, так при выполнении без пауз в Nodejs и хроме выдает...

151
Как собрать анимацию из кусков с JS?

Как собрать анимацию из кусков с JS?

Давно зрела мысля сделать небольшую браузерную игру, вот пытаюсь залезть в тему gamedevИзначально была идея сделать анимацию построенную на спрайтах:

118