мне не нравится, как тут сделано – что в самих элементах прописано действие
onclick="calc.txt.value+=
Лучше бы разделить три части:
- действия пользователя (нажатые кнопки)
- обработку очередной поступившей команды
- отображение на дисплее
Переделайте, чтобы вместо этой добавки прямо в значение
txt.value
, кнопки вызывали общую функцию:
onclick="clicked('*')"
. И напшите эту функцию, которая на вход получает символ, и дальше решает, что с ним делать. Например, сначала берёт существующее значение txt.value, смотрит на его последний символ, и либо добавляет, либо заменяет его.
Иллюстрация идеи: