Cómo determinar si una función se ha llamado sin establecer una variable global

Estoy buscando una buena técnica para alejarme de lo que siento la tentación de hacer: establecer una variable global.

La primera vez que alguien ejecuta una función haciendo clic en un botón, activa una función inicial para convertir algunas cosas en draggables. Más tarde, si hacen clic en el botón una segunda vez, quiero determinar si elinit La función se ha inicializado, y si es así, no volver a llamarla. Podría hacer esto fácilmente configurando una variable global desde elinit Funciona y luego verifica esa variable desde la función de clic, pero me pregunto cómo hacerlo sin establecer una variable global. Realmente me gustaría un ejemplo de una manera de hacer esto.