我是个新手,在看《javascript基础教程(第六版)》的第5章,第5-14脚本时,有个地方不太明白,还请各位高手请教:    setTimeout("bumpPageCt("+this.thisPage+")",1000);    bumpPageCt是个函数,调用时给它的参数前 + 和后 + 是什么意思????

解决方案 »

  1.   

    首先
    要给bumpPageCt传个参数,实际上调用的时候是bumpPageCt(n)
    n是个变量即this.thisPage
    所以应该是bumpPageCt(this.thisPage)
    其次
    setTimeout的第一个参数是代表函数的字符串
    如果直接"bumpPageCt(this.thisPage)",显然this.thisPage作为字符串的一部分是没有意义的,
    所以将this.thisPage的值和与字符串连接
    "bumpPageCt(" + this.thisPage + ")"
    如果this.thisPage=2则 实际为"bumpPageCt(2)"
      

  2.   

    setTimeout的第一个参数是个可执行字符串
    前后两个加号是在构造这个字符串,试想不带两个加号this.thisPage将会被看作字符串而不会被替换成相应的变量值
    比如程序执行到此this.thisPage=6
    把this.thisPage当字符串就会执行bumpPageCt(this.thisPage)
    当数值就执行bumpPageCt(6)前一个的this.thisPage的引用是有范围的通常情况下bumpPageCt作为全局函数无法直接访问到this.thisPage,传数值6就不存在这个问题
      

  3.   

    加法运算符 (+)
    将数字表达式的值加到另一数字表达式上,或连接两个字符串。而settimeout的第一个参数是必须的,或者是函数名称,或者是可以被执行的字符串.
      

  4.   

    jf   jf
     jf jf
      jf