js函数中this的传值的问题

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">    
    var i=1;
    window.onload = function()
    {   node_name = document.body.firstChild;
        node_name.setAttribute("src","images/sh_hero_1.jpg");
        node_name.setAttribute("onclick","c(this)");
    }
    function c(q)
    {
        i++;
        q.setAttribute("src","images/sh_hero_"+i+".jpg");
    }
    </script>
</head>
<body><img/></body>
</html>

node_name.setAttribute("onclick","c(this)");中的this工作原理是什么?为什么能把node_name这个局部变量传出去?新人小白求轻拍。

阅读 4k
2 个回答
<button onclick="c(this)"></button>

<script>
function c(el){
    //此时el引用的是button
}
</script>

你的代码node_name.setAttribute("onclick","c(this)");其实是动态地添加类似上面button中的onclick属性。
当按下按钮时,会执行onclick中的代码,在c(this)这段短短的代码中,this就是指向当前元素。

看下this指向哪里,对象调用自己的方法this指向该对象

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题