Это было бы сильно усложнено, но теоретически вы могли бы убедиться, что все выполнение кода происходит в области, которую вы определяете через анонимную функцию.
Таким образом, все, что выполняется через консоль, будет находиться в другой области видимости (которая является областью по умолчанию), и вы потенциально можете добавить код к каждой общедоступной функции, которая у вас есть, где вы проверяете, откуда этот код выполняется.
Но опять же, пользователь имеет полный контроль над браузером.
Я читал, что вы заметили это, играя в игру. Например, http://agar.io использует эту изолированную технику, чтобы пользователь не мог вмешиваться в игровые значения. Это небезопасно, поскольку опытный пользователь все еще может попытаться ввести код, внедрить ваш код, чтобы добавить дескрипторы для раскрытия внутренних частей вашего кода.
Хотя вы можете реализовать некоторые приемы, чтобы сделать его более сложным для пользователя (см. https://x -c3ll.github.io / posts / javascript-antidebugging / )