this指向

this指向一共有五种

this 指向并不是在函数定义的时候确定的,而是在调用的时候确定的。

 

1.在全局环境中,this指向window。(直接调用

在全局执行环境中(在任何函数体外部)this 都指向全局对象。

在浏览器中全局对象是 window,在 NodeJs 中全局对象是 global。

直接调用并不是指在全局作用域下进行调用,在任何作用域下,直接通过 函数名(...) 来对函数进行调用的方式,都称为直接调用。

 

 

2.方法调用

this 指向调用该方法的对象。通过对象来调用其方法函数,它是 对象.方法函数(...) 这样的调用形式。

3.在构造函数中,this指向创建的对象

创建一个新实例对象,而其中的 this 就指向这个新实例对象。

4.箭头函数

箭头函数中使用的 this,其实是直接包含它的那个函数或函数表达式中的 this。(事件源)

5.非函数被调用时

这里的this都指向全局对象,在非严格模式下,会自动转向全局对象

 

改变 this 的指向

1. 方法借用函数修改 this 指向

 

 这里借用say()方法,使this指向了 a 对象,所以会打印P12135

2.bind 方法绑定 this 指向

 

bind()
bind()
fun.bind(thisArg[, arg1[, arg2[, ...]]])
thisArg:当绑定函数被调用时,该参数会作为原函数运行时的 this 指向。
arg1,arg2,...:当绑定函数被调用时,这些参数将置于实参之前传递给被绑定的方法。
 

 

posted @   着迷1  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示