js this的几种情况

在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对象。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180508A0G3F300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券