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,...:当绑定函数被调用时,这些参数将置于实参之前传递给被绑定的方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!