this指向、bind()、call()、apply()

目录

一、this指向

1、性质

2、指向

二、call()

1、格式

2、作用

三、apply()

1、格式

2、作用

3、与call()区别

四、bind()


一、this指向

1、性质

解析器在每次调用函数的时候都会向函数内部传递一个隐含的参数this

该对象:函数执行上下文

根据函数调用的方式不同,this指向也就不同

2、指向

(1)普通函数:指向window

(2)对象方法:指向该对象

(3)构造函数:指向实例对象(原型对象里面的方法也是指向实例)

(4)事件绑定:绑定事件的对象

(5)定时器:Window

(6)立即执行函数:Window


JavaScript提供一些函数方法来帮助我们更优雅处理函数内部this指向问题,常用的bind()、call()、apply()

更多内容,参考小编文章:JS进阶第一课【this,严格模式,闭包】_js严格模式this-CSDN博客


二、call()

1、格式

调用函数名().call(指向谁,参数1,参数2...)

2、作用

①可以直接调用函数

②改变函数this指向

③可以实现继承,在构造函数中


三、apply()

1、格式

调用函数().apply(thisArg,[arhsArray])

①thisArg:在函数运行时候的This指向

②arhsArray:要传递的值,必须包含在数组里面

返回值就是函数,函数的返回值,因为他是调用函数

2、作用

①调用函数,可以改变this指向

②参数必须是数组

③常用于借助属性的内置对象求最大最小值

3、与call()区别

传参必须放数组


四、bind()

不会调用函数,但是可以改变函数内部的this指向【更常用】

相关推荐
MarkHD4 小时前
智能体在车联网中的应用:第51天 模仿学习与离线强化学习:破解数据效率与安全困局的双刃剑
学习·安全
wearegogog1237 小时前
基于 MATLAB 的卡尔曼滤波器实现,用于消除噪声并估算信号
前端·算法·matlab
molaifeng7 小时前
Go 语言如何实现高性能网络 I/O:Netpoller 模型揭秘
开发语言·网络·golang
Drawing stars7 小时前
JAVA后端 前端 大模型应用 学习路线
java·前端·学习
崇山峻岭之间7 小时前
Matlab学习记录33
开发语言·学习·matlab
品克缤7 小时前
Element UI MessageBox 增加第三个按钮(DOM Hack 方案)
前端·javascript·vue.js
Evand J7 小时前
【2026课题推荐】DOA定位——MUSIC算法进行多传感器协同目标定位。附MATLAB例程运行结果
开发语言·算法·matlab
小二·7 小时前
Python Web 开发进阶实战:性能压测与调优 —— Locust + Prometheus + Grafana 构建高并发可观测系统
前端·python·prometheus
小沐°7 小时前
vue-设置不同环境的打包和运行
前端·javascript·vue.js
jllllyuz7 小时前
基于MATLAB的二维波场模拟程序(含PML边界条件)
开发语言·matlab