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

为啥要定义一个var This=this

请问为啥要在onmouseover事件里定义var This=this呢?为什么“This.style.width=This.offsetWidth+8+"px";”换成this.style.width=this.offsetWidth+8+"px";也就是“This”换成“this”,为啥不行了呢,谢谢,求指教

正在回答

5 回答

This是你自己自己定义的一个变量,var This=this;那个This你想写成啥写成啥,这里视频老师给写成This了,而小写的this指的是,调用函数的那个对象,this是Javascript语言的一个关键字。             它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用

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

cola666 提问者

为什么“This.style.width=This.offsetWidth+8+"px";”换成this.style.width=this.offsetWidth+8+"px";也就是“This”换成“this”,为啥不行了呢
2016-10-25 回复 有任何疑惑可以回复我~
#2

cola666 提问者

非常感谢!麻烦您帮我解答一下追问的好么
2016-10-25 回复 有任何疑惑可以回复我~
#3

大零蛋75698 回复 cola666 提问者

同学是这是函数闭包问题
2016-11-13 回复 有任何疑惑可以回复我~

不知道楼主有没有接触过jquery jquery里边有一个特别典型的例子能说明用_this的作用
$("#btn").click(function(){
   var _this = this;//这里this和_this都代表了"#btn"这个对象
   $(".tr").each(function(){
         this;//在这里this代表的是每个遍历到的".tr"对象
         _this;//仍代表"#btn"对象
   })
})
这种情况就是在一个代码片段里this有可能代表不同的对象,而编码者希望_this代表最初的对象

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

lynn__yan

看了你的评论。。我终于明白了。阿里嘎多~~
2017-11-06 回复 有任何疑惑可以回复我~

个人理解,是不是因为This要在新函数setInterval里面使用,而小写的this只能在onmouseover=function(){}在这里使用,而如果要要写在新函数里,就要用一个变量来代替他。同新手理解

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

谁能解答的详细点啊,摔!!!

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

急需解决一下,可以说的详细一点吗?

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

举报

0/150
提交
取消
导航条菜单的制作
  • 参与学习       123899    人
  • 解答问题       813    个

水平、垂直、圆角导航条菜单,让您的技术探索之路更高效

进入课程

为啥要定义一个var This=this

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