This 函数

一、this在函数中的四种调用

1.纯粹的函数调用

这是函数的最通常用法,属于全局性调用,这时this就指全局(浏览器中为window,node中为global)

2.作为对象方法的调用

函数还可以作为某个对象的方法调用,这时this就指这个上级对象。

3.作为构造函数调用

通过这个函数生成一个新对象(object)。这时,this就指这个新对象。

4. apply调用

apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数

如何确定this函数的指向

默认模式下,test() —> window  以函数形式调用 严格模式下(设置了‘use strict’),this为undefined

p.test() —> p  以方法的形式调用

new test() —> 新的创建的对象  以构造函数形式调用

p.call(obj) —> obj  使用call和apply方法调用

this的最终指向始终是调用的它的对象

二、修改this指向的三种方法

call方法 

apply方法

bind方法

三、call、apply、bind的用处

call方法

可以通过修改this指向使用别的函数的方法

apply方法

最主要是可以把数组一个一个铺开

bind方法

ES6以前可以修改定时器里的this

四、call、apply、bind的特点

1、 它们三个都是可以修改this指向;
2、 而call、apply是可以调用的,bind是返回一个修改了this指向的新函数;
3、 call传参是一个一个传的,apply是需要传入数组或伪数组,
bind是一个一个的传的,可以在调用这个函数的时候传参,
如果在修改指向的时候传,那之后调用这个新函数的时候,
不管传什么,结果都不会变。

posted @   LLL啊啊啊  阅读(207)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示