一、this指向问题
1.全局作用域或者普通函数中this指向全局对象window
<script>
console.log(this);
function fn() {
console.log(this);
}
fn();
</script>
2.方法调用中谁调用this指向谁
<script>
var o = {
hi:function() {
console.log(this);
}
}
o.hi();
</script>
3.构造函数中this指向构造函数的实例
<script>
function Fn() {
console.log(this);
}
var fn = new Fn();
</script>
二、this与e.target的区别
e.target返回的是触发事件的对象,this返回的是绑定事件的对象。
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<script>
var ul = document.querySelector("ul");
ul.addEventListener("click",function(e) {
// this 返回的是绑定事件的对象,即ul
console.log(this);
// e.target返回的是触发事件的对象,即li
console.log(e.target);
})
</script>