有关于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回答
同学你好, 可以这样理解的。祝学习愉快~
慕移动3569406
提问者
2019-12-26
好像懂了一些, 是不是HTML事件这个引号内部其实就是一个函数的作用域?
<div id="div" onClick="clicked(this)"></div>
其实应该翻译为:
document.getElementById('div').onlick = function(){
//这个作用域内部可以获取到this。
clicked(this);
}
不知道理解对不对 , 老师指点一下。
相似问题