我正在尝试将一些现有的顶级函数分组到一个闭包中(以避免污染全局命名空间),但我似乎无法使其正常工作。
首先,所有JS代码在匿名函数外部都能正常工作,但是一旦我将它放入匿名函数中,就会出现“crossfade未定义”的错误。是否有人发现我完全忽略了什么显而易见的问题?
我不太明白为什么setInterval/crossfade在匿名函数外部可以工作但在内部却不能。start()内的任何内容都应该能够看到start()外部的变量/函数,并且它们都应该受到顶层匿名函数创建的闭包的保护。我并不试图访问crossfade()内的任何内容,我只是想执行它。
(function($) {
//vars up here that internal functions can access
//also using some jquery inside here, so using $
function crossfade() {
//body here
}
//other functions
function start() {
//body here
cInterval = setInterval('crossfade()', 5000);
}
})(jQuery);