O mais recomendado é uma função receber todos os parâmetros que precisa, mas no caso da função usada para o evento do clique temos um problema. Não podemos alterar essa função para que recebe qualquer valor que estipularmos. Um caso atípico , não? Nesse caso, podemos recorrer ao seguinte subterfúgio.
Uma função declarada tem acesso às variáveis declararas em um escopo superior. Isso é, a função verifica
consegue enxergar a variável input
que foi declarada fora dela. Mas não é porque o JavaScrip permite isso que você deixará de passar parâmetros para funções. Como você viu, esse comportamento confunde quem esta começando e não deixa claro o código, isto é, de onde a variável vem.
Consegui pegar a ideia?