函数内嵌函数需要this才能运行的问题,求指教?

来源:9-22 编程练习

番茄boy

2020-11-13 15:14

http://img1.mukewang.com/5fae32010001a5c707210574.jpg

正如上图所示,是个让表格每行鼠标移上去就变色的代码,在图片红色框框处,是能运行正常的,但一旦改成obj[i]就无法运行了,是怎么回事?

写回答 关注

4回答

  • 沐沐3381925
    2020-12-03 13:06:51
    已采纳
    obj[i]在匿名函数没有定义
         function bgc(obj){     	
             for(var i=0; i<obj.length;i++)     	
             {	     		
                 obj[i].onmouseover=(function(obj){     			
                     // this.style.backgroundColor='#f2f2f2';     			
                         return function(){     				
                             obj.style.backgroundColor='#f2f2f2';     			
                             }     		
                   })(obj[i]);     		
                 obj[i].onmouseout=(function(obj){     			
                         return function(){     				
                             obj.style.backgroundColor='#fff';     			
                             }     		
                  })(obj[i]);     	
              }     
          }


  • 精慕门5098903
    2020-12-24 13:56:32

    闭包只能取得包含函数中任何变量的最后一个值,楼主写的代码中包含函数只能取得obj[i]的最后一个值

  • 沐沐3381925
    2020-12-03 03:32:39
    obj[i].style.backgroundColor这时的i已经不是当初的i,你做一个中间值传给它看看


  • 阳火锅
    2020-11-17 11:24:11

    你别学了  送外卖去吧.. 工资高一点

    慕村9220... 回复阳火锅

    好家伙,像“您”这样的激励方式举世罕见。实在不懂,像“您”这样的思维方式是如何形成的,莫不是你请教他人的时候,别人都这样跟你说【你别学了,送外卖去吧】,那可真够可悲的。

    2021-03-22 13:59:49

    共 3 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468060 学习 · 21891 问题

查看课程

相似问题