Обратиться к объекту, область видимости

<script>
try { 
    
    const p = {
        int: function(setti){
           alert('dsf');
        }
    }
    
} catch (err) {  

    console.log(err);
}
</script>
<body>
    <script>
        window.addEventListener('DOMContentLoaded', () => p.int({}));
    </script>
</body>

Необходимо обернуть js код, ловить ошибки и записывать из в файл. Собственно с этим нет трудностей.

Вопрос в том, если оборачивать таким образом, а затем из html обращаться к объекту. То в таком случаи попросту не видит объявленную константу. Возможно это поправить?

<script>
const p = {};
try { 
    
    p.int = setti =>{
       p.gg();
    }
    p.gg = setti =>{
        alert('11dsf');
    }
} catch (err) {  
    console.log(err);
}

</script>
<body>
    <script>
        window.addEventListener('DOMContentLoaded', () => p.int({}));
    </script>
</body>

Есть такой вариант, но блин. Все писал через 'this', придется много править...


Ответы (1 шт):

Автор решения: Grundy

объявление const видно только внутри try.

Однако, в данном случае нет смысла оборачивать присваивание в блок try..catch - так как оно не может вызвать исключение.

Таким образом сейчас твоим примеры одинаково работают как с try..catch так и без.

Если исключение происходит при вызове метода - try..catch должен быть объявлен внутри функции

<script>
    
    const p = {
        int: function(setti){
            try {
                alert('dsf');
            } catch(e) {
                console.log(e);
            }
        }
    }

</script>
<body>
    <script>
        window.addEventListener('DOMContentLoaded', () => p.int({}));
    </script>
</body>
→ Ссылка