Su sugerencia, sobrescribir asignando un nuevo valor a la variable, no funcionará (al menos no en ninguna implementación de JS en uso en los navegadores comunes). Las cadenas de JavaScript son inmutables, lo que significa que cuando asignas un nuevo valor a una variable de cadena, se crea una nueva cadena en algún lugar del montón. No sobrescribe la anterior. Envolverlo en un objeto, como en el segundo ejemplo, no cambia esto.
El recolector de basura en JavaScript se extrae, y no hay API para que interactúes con él. Por lo tanto, no puede controlar directamente lo que hace o decirle que elimine un valor de la memoria de una vez.
Puede haber algún tipo de truco inteligente / truco feo en el que puedes intentar influir en el comportamiento del GC, pero dudo que valga la pena el esfuerzo. Le recomiendo que piense sobre la amenaza contra la que está tratando de defenderse y considere si realmente es un problema para usted que la contraseña permanezca en la memoria.
Editar: Como dandavis se resalta correctamente en los comentarios, hay tipos de JavaScript que puede ser sobrescrito, por ejemplo arrays mecanografiados. Sin embargo, aún necesita obtener los datos confidenciales en uno de ellos sin que todos estén almacenados en una variable "ordinaria". Si solo lo copia de input.value
no ha ganado nada. No sé cómo hacerlo y, sinceramente, no me molestaría en intentarlo.