为了账号安全,请及时绑定邮箱和手机立即绑定

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

http://img1.sycdn.imooc.com//5fae32010001a5c707210574.jpg

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

正在回答

4 回答

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]);     	
          }     
      }


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
obj[i].style.backgroundColor这时的i已经不是当初的i,你做一个中间值传给它看看


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

番茄boy 提问者

你何必这么尖酸刻薄呢? 人人都有菜鸟的时候。 你这么牛,真希望你以后“前途无量”啊
2020-11-19 回复 有任何疑惑可以回复我~
#2

阳火锅 回复 番茄boy 提问者

我认为你菜 只是认为你现在比较菜,不代表否定了你整个人生.. 我说的话是为了激励你更好的去进步..不想以后再风雨中穿行..就要从现在开始学会用百度.. 切勿白嫖...
2020-11-20 回复 有任何疑惑可以回复我~
#3

慕村9220310 回复 阳火锅

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468191    人
  • 解答问题       21891    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信