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

为啥非要加上this才有用啊?

为啥非要加上this才有用啊?

慕用7797256 2018-04-10 17:10:47
 <script>  function del(obj){         var tbody=document.getElementById("table").lastChild         var tr = obj.parentNode.parentNode;         tbody.removeChild(tr)} </script> <body> <table>  <tr>  <td>小敏</td>   <td><a href="javascript:;" onclick="del(this)" >删除</a></td>   <!--在删除按钮上添加点击事件  --> </tr> </table> </body>比如这段代码,删除一整行,必须写“del(this)”才有效果,如果只写onclick="del()"则不起作用,这是为啥啊?
查看完整描述

4 回答

?
慕少3518815

TA贡献2条经验 获得超2个赞

声明函数的时候,obj是你的形参,obj只是一个变量,没有具体的值,值为undefined;
如果你没有传实参;即你没有this实参的时候,你的代码执行结果是 var tr = undefined.parentNode.parentNode;

当你传递实参:this 的时候,你的代码指向结果是:var tr = this.parentNode.parentNode;


查看完整回答
1 反对 回复 2018-04-11
?
Viavia

TA贡献13条经验 获得超4个赞

 del函数用到了obj这个参数,你当然要传, 你还是先看基础视频吧

查看完整回答
1 反对 回复 2018-04-10
  • 慕用7797256
    慕用7797256
    给推荐几个教程呗,慕课网上的js教程没有详细讲解实参这些
?
Jenny_xiong

TA贡献16条经验 获得超7个赞

你在方法里面使用了传参的参数,如果没使用也不会报错,this指代的是当前调用这个函数的对象

查看完整回答
1 反对 回复 2018-04-10
?
半枯

TA贡献101条经验 获得超45个赞

你的js代码del(obj)本身就需要参数传入,this指当前对象。你可以修改你定义的方法

查看完整回答
1 反对 回复 2018-04-10
  • 4 回答
  • 1 关注
  • 2235 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信