вывести значение функции за свои пределы

Подскажите пож, как вынести значение переменной "pos" за пределы функции, в которой он находиться? Глобально объявлять нельзя. Пробовал делать через return, и объявлять функцию. Не помогает. Помогите, пожалуйста. Html структуру отображать не стал. В этом нет необходимости.

$(document).ready(function () {
    function first() {      
    $('.taglist:checked').each(function (i) {
    let pos = $(event.target).closest('body').find('.list-textbox-item .taglist').index($(event.target).closest('.list-textbox-item .taglist'));     
    return pos;      
    });
  
    //Вывести значение переменной 'pos' необходимо в текущую область. 
  
    $('.list-textbox-item textarea:eq(pos)').val(allVals).attr('rows', allVals.length);
  
  }
});


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

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

Вы можете использовать IIFE чтобы ограничить scope переменной let:

(function($) {
    $(document).ready(function () {
        let pos
        function first () {
            $(".taglist:checked").each(function (i) {
                pos = $(event.target).closest("body").find(".list-textbox-item .taglist").index($(event.target).closest(".list-textbox-item.taglist"))            
            })
        }

        // Вывести значение переменной "pos" необходимо в текущую область.

        $(".list-textbox-item textarea:eq(pos)").val(allVals).attr("rows", allVals.length)
    })
})(jQuery)

Или же воспользоваться замыканием.

→ Ссылка