在js中,针对this对象的是一个非常重要又容易混淆的概念,记录一下this对象的几种情况:
一般情况下,对于普通函数而言,this对象相当于window对象,指向window,如下:函数fn中打印的this即为window对象。
当某个函数属于某个对象时,那么这个函数里面的this就相当于这个对象,如下:obj对象包含字符串属性name和函数属性objFn,当通过obj对象调用objFn函数时,此时this打印为obj这个对象。
当通过new一个函数生成的对象时,那么函数里面的this就相当于new创建的这个对象,如下:通过new函数f创建obj2对象之后,this即指向刚创建的obj2.
手动绑定,这种情况稍复杂一点,通过call或者apply可以修改函数里面this的值,如下示例:直接调用aCall函数则跟情况1相同,this指向window,如果通过call和apply函数修改了this,那么此时this都指向对应的obj3对象。
领取专属 10元无门槛券
私享最新 技术干货