Работа функции setTimeout


#1

Кто-нибудь разобрался как работает функция SetTimeout в паре с clearTimeout? Я так до конца и не понял, надо ли обязательно выполнять очистку clearTimeout или достаточно переменной с номером функции присваивать значение null.

water_valve_timer_id = setTimeout(function() {
dev[“wb-gpio”][“EXT1_R3A4”] = !dev[“Water_valve_switch”][“position”];
water_valve_timer_id = null;
}, valve_timeout_s * 1000);

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