解决方案 »

  1.   

    js作用域问题!var a = 'asd';
    var b = function() {
        alert(a); //虽然b内没有定义a 但是由于a与b作用域相同!所以b内可以访问a变量
    }var c = function() {
        var a = 'qwe';
        alert(a); //所以c定义了a 所以使用函数内部的a变量
    }var d = function() {
        a = 'qwe'; //没有使用var声明变量 将会覆盖上级作用域的变量
        alert(a); //弹出qwe
    }
    b(); //弹出asd
    alert(a); //a的值不变 弹出asd
    c(); //弹出qwe
    alert(a); //a的值不变 弹出asd
    d(); //弹出qwe
    alert(a); //a的值变为qwe  弹出qwe
      

  2.   

    这样写可以把滚动相关的代码集中在一个地方,有利于代码维护。另外js的作用域相关的知识你可能还没搞清楚,去看看js基础教程吧
      

  3.   

    作用域我知道,我是想问,时钟定期执行,但不会阻塞线程,则当前函数直接走完了。那么时钟内设置的执行函数内取外面执行完毕的函数的变量,变量应该已经被释放了呀。 是否是因为在函数内设置时钟(setInterval)的话,在实在关闭之前,调用setInterval的函数内所有资源不会被释放,会等到始终关闭才会?
      

  4.   

    都可以,changeImg()函数就像好像是初始化函数初始化滚动相关的代码。整个ready(function() 函数就是一个初始化。