У меня возникают проблемы с вызовом внутренней функции изнутри другой. Мне нужно иметь возможность вызвать funcA на загрузку страницы, передавая ему элемент и некоторые измерения, которые затем применяют некоторые стили к элементам pass. funcB затем использует элемент правильно сказал параметры для размера:Вызов частной функции изнутри другой функции
var funcA = function(elem, width, height) {
//performs layout restyle
function funcB() {
//performs sizing
}
funcB();
}
Однако, этот вопрос я должен напомнить funcB изнутри функция изменения размера противодребезговой защиты, как это.
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
var resizeFn = debounce(function() {
funcB();
}, 10);
$(window).on('resize', resizeFn);
Какова наилучшая практика для создания funcB? Я подумывал о возврате его, а затем к его кешированию к переменной:
var funcA = function(elem, width, height) {
//performs layout restyle
function funcB() {
//performs sizing
}
funcB();
return funcB
}
var scopedFuncB = funcA;
scopedFuncB();
Но есть ли лучший способ?
Как и где вы определяете функцию debounced resize? – Oriol
, возвращая его, чтобы сформировать замыкания, звучит как жизнеспособный способ. Что вам не нравится? Пожалуйста, покажите нам весь код этой попытки. – Bergi
См. Выше, это не то, что мне не нравится, это жизнеспособно, просто интересно, есть ли способ сделать это, не загрязняя глобальное пространство имен. – user3586963