问答详情
源自:9-22 编程练习

两个问题求解答

两个问题 1:window.onload = function(){Highlight();}改成window.onload=Highlight();就不行了,为什么? 2:trs[i].onmouseover=function()            {this.style.backgroundColor=#f2f2f2};   this这个事件的对象不就是trs[i]么,把this改成trs[i]为什么不行

提问者:ahao430 2016-05-06 10:58

个回答

  • 范克里夫
    2016-05-08 23:43:54
    已采纳

    1. 可以改成window.onload = Highlight;

      window.onload = function(){Highlight();}这句中的function(){Highlight();}是一个函数直接量,Highlight指向一个函数。

      你写的window.onload=Highlight();可以自己想象着执行下。Highlight()这句执行结果是undefined,因为Highlight这个函数没有返回值。所以你写的代码可以等价于window.onload=undefined;

    2. 函数执行的作用域链中没有i,trs有,因为参考代码的trs是定义在window对象下的。

  • qq_小付_1
    2016-05-06 15:32:35

    1.function 对应的有oclick吧  只有点击时才能触发这个事件。

    2.改成trs[i]我试着行啊。你再试一试。