有关于this的疑问

来源:2-1 HTML事件

慕移动3569406

2019-12-26 01:11:28

为什么HTML事件里面,this指向的是DOM元素, 但是调用函数的时候this就不是DOM元素了, 而是window对象。

而其他的事件定义的方法都可以在函数内部通过this获取到?

比如:

   <div id="div" onClick="clicked(this)"></div>

    function clicked(btn){

      console.log(this) // 指向的是window对象, 不是DOM元素本身

      btn.style.background = 'green';

     }

    // 这样的方式却可以。

    document.getElementById('div').onClick = function(){

        this.style.background='blue'; 

      }

可以通俗地讲解一下吗? 感谢

写回答

2回答

好帮手慕慕子

2019-12-26

同学你好, 可以这样理解的。祝学习愉快~

1

慕移动3569406

提问者

2019-12-26

好像懂了一些, 是不是HTML事件这个引号内部其实就是一个函数的作用域?

   <div id="div" onClick="clicked(this)"></div>

    其实应该翻译为:

    document.getElementById('div').onlick = function(){

    //这个作用域内部可以获取到this。

        clicked(this);

      }

不知道理解对不对 , 老师指点一下。

1

0 学习 · 40143 问题

查看课程