以下内容都是我自己在学习中案例遇到的问题,及可能会出现的错误,所以我把这些总结分享出来(第一次写博客,有不好的地方,请多多指教哈🤭)
1. this 在全局作用域中
如:
<script>
console.log(this); // 这个this的指向则是Window
</script>
2.在构造函数中
this 会指向你实例化的对象
如:
<script>
class athlete {
constructor(name) {
this.name = name; //这个this 指向的是下面实例化的对象
}
}
var kb = new athlete('科比');
console.log(kb.name);
</script>
3.在事件绑定中
如:div.onclick = function(){} // 里面的this 指向的是 div (即事件源)
div.addEventListener(mouseenter,function(){}) // 这里面和上面一样都是指向div(即事件源)
<script>
var div = document.querySelector('div');
div.addEventListener('mouseenter',function() {
console.log(this); // 这里面的this 都指向的是div
});
div.onclick = function() {
console.log(this); //this -> div
}
</script>
4.在普通函数中
谁调用就指向谁
<script>
class div {
constructor() {
this.li = document.querySelector('li');
this.li.onclick = this.addClass; // 这个函数的this指向的是这个li (谁调用指向谁)指向调用者
}
addClass() {
******
}
}
new div();
</script>
以上内容是我学习中遇到的一些,若有错误,还请指出。this指向问题当然还有一些,如箭头函数,定时器里面的this等等这些,后面将会和大家分享🤭
我会慢慢分享我的学习心得, 点个赞吧~🤭