关于this

关于this

<input type="button" id="start" value="开始" onmouseover="btnFun(this,'#f00')" onmouseout="btnFun(this,'#ccc')">
<input type="button" id="end" value="结束" onmouseover="btnFun(this,'#00f')" onmouseout="btnFun(this,'#ccc')">
<script type="text/javascript">
   function btnFun(btn, bgcolor){
       btn.style.color=bgcolor;
   }


为什么html时间不能直接用this,而是需要写当前按钮对象参数btn;但是btn1.onclick=btnFun;
这种形式调用却可以直接用this  不用传参?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
怎么都被占用了呢 2018-04-11 12:05:56

不传this的话,获取不到当前要执行js的目标节点,在js里可以,是因为已经通过document.getElement之类的写法来获取到节点了。

怎么都被占用了呢 2018-04-11 10:41:59

不太明白你的意思呢,这不是用了this么

http://img1.sycdn.imooc.com//climg/5acd752c00010fef03200154.jpg

而且你说的btn1.onclick=btnFun;这种情况也是要传参的,因为定义的btnFun是有形参的,调用的时候不传参,会报错的。

  • 提问者 Sunshine518 #1
    <input type="button" id="start" value="开始"> <script type="text/javascript"> function btnFun(){ this.style.color='#f00'; } var btn=document.getElementById('start'); btn.onclick=btnFun; </script> 这样调用就可以this是时间对象的引用,而提问的那种却需要用传参数的形式才是this,如果不用 function btnFun(btn, bgcolor){ btn.style.color=bgcolor; } 里面的btn参数 直接写this就会报错 为什么
    2018-04-11 11:04:58
  • 提问者 Sunshine518 #2
    <input type="button" id="start" value="开始"> <script type="text/javascript"> function btnFun(){ this.style.color='#f00'; } var btn=document.getElementById('start'); btn.onclick=btnFun; </script> 这样调用就可以this是事件对象的引用,而提问的那种却需要用传参数的形式用this,如果不用 function btnFun(btn, bgcolor){ btn.style.color=bgcolor; } 里面的btn参数 直接写this就会报错 为什么 抱歉刚才的回复删不掉 写错字了
    2018-04-11 11:07:22
  • 提问者 Sunshine518 #3
    简单一点就是:<input type="button" id="start" value="开始" onmouseover="btnFun('#f00')" onmouseout="btnFun('#ccc')"> <script type="text/javascript"> function btnFun( bgcolor){ this.style.color=bgcolor; } </script> 为什么这样调用 会报错
    2018-04-11 11:09:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
JavaScript基础入门 2018
  • 参与学习       547    人
  • 提交作业       206    份
  • 解答问题       640    个

JavaScript作为前端学习中的一个重要组成部分,本课程将带领你从最基础的语法开始,学习js的流程控制语句、函数、内置对象、DOM基础、DOM事件、BOM基础以及经典的js案例--轮播图。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师