Никак.
Не совсем так. Кое-как можно, если очень хочется.
Тогда почему, когда я скачиваю из Интернета игру, я не вижу её код?
Зависит от того, какую игру и куда вы скачиваете. Многие онлайн-игры кроме клиентского кода имеют еще и серверный, который вы никуда не скачиваете. Javascipt-код в браузере вполне можно посмотреть, если знать, как.
Теперь этот Вася желает послать написанную им программу своему другу.
Javascipt выполняется в браузере. Чтобы послать другу, можно сделать веб-страницу и послать ссылку. А браузер обычно ничего не прячет.
Но друг не должен видеть код программы, он должен получить файл, открыв который он увидит окошко с надписью "What's your name?", напишет своё имя, нажмёт Enter и прочтёт: "Your name is: (своё имя)".
Возможно, вам нужен Node.js (гуглите). Объяснять, что это и зачем это, слишком долго. Если коротко - это возможность использовать Javascipt не только в браузере.
Кроме того, есть мягкий вариант - минификация Javascipt (тоже гуглите). Основное назначение минификации - сжатие кода, чтобы ускорить загрузку по сети. Бонусом идет то, что более-менее сложный код после минификации понять практически невозможно.