首先,我们为什么要学js?
1, this使用频率很高,如果我们不懂this,那么在看别人的代码或者是源码的时候,就会很吃力。
2, 工作中,滥用this,却没明白this指向的是什么,而导致出现问题,但是自己却不知道哪里出问题了。
3, 合理的使用this,可以让我们写出简洁且复用性高的代码。
4,面试的高频问题,回答不好,抱歉,出门右,不送。
this到底是什么?
首先this肯定不是指的自己本身,this就是一个指针,指向调用函数的对象。总结起来就是一个六字真言(谁调用,指向谁),下面让我们一起来看看吧。
function fn(){
var aa = '你真棒'
console.log(this)//window
}
fn()
//为什么这里的this是window呢,是因为在非严格模式下,如果这个函数有this,并且没有被上一级调用的话就会指向window
下面我们来看这个
var ff = {
a:22,
ss:function(){
console.log(this.a,this)//22,{a:22,ss:f}
}
}
ff.ss()
为什么这里不是window呢,是因为如果一个函数中有this,这个函数会被上一级对象调用,那么this就会指向上一级对象
var aa = {
b:41,
bb:{
b:23,
child:function (){
console.log(this)//window
}
}
}
var ss = aa.bb.child
ss()
这里为什么会是window呢,是因为把aa.cc.child赋值给了全局变量ss,最终的调用事件是在window作用域下调用的ss(),所以最后是window
好了this就到这里了,谢谢大家进来观看,动动你的小手给个赞再走吧!谢谢你呢。