1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > JavaScript - this指向以及强行改变this指向

JavaScript - this指向以及强行改变this指向

时间:2022-05-11 11:56:33

相关推荐

JavaScript - this指向以及强行改变this指向

this 指向

-官方:指当前代码执行的上下文环境(context)

-私人:

就是一个使用在作用域内(全局 / 函数内)的关键字

全局作用域 this

->在全局作用域内,this就是window(特指前端JS)

函数作用域 this

定义:不管函数在哪定义,不管函数怎么定义,只看函数的调用方式(箭头函数除外)

1、普通调用

-函数名()

-函数内的 this 指向 window

2、对象调用

-对象名.函数名()

-函数内的 this 指向 点( . )前面的全部内容

3、事件处理函数

-事件源.on事件类型 = 函数

-事件源.addEventListener(‘事件类型’,函数)

-函数内的 this 指向 事件源(绑定在身上的事件)

4、定时器处理函数

-setTimeout(函数,数字)

-setInterval(函数,数字)

-函数内的 this 指向 window

5、自调用函数

-(函数)()

-函数内的 this 指向 window

6、箭头函数

-() => {}

-函数内的 this 是该箭头函数外部作用域的 this

-唯一一个不看调用看定义决定 this 的

强行改变 this 指向

this 指向是因为函数的调用而出现的

在调用函数的的时候,改变函数内的this指向

1、call ()

语法:直接连接在函数后面使用

函数名.call()

对象名.函数名.call()

参数:

第一个参数:函数内的 this 指向

第二个参数开始:依次给是该函数的实参

特点:立即调用函数

2、apply()

语法:直接连接在函数后面使用

函数名.apply()

对象名.函数名.apply()

参数:

第一个参数:函数内的this指向

第二个参数:是一个数组或者伪数组类型都可以,内部每一个数据按照顺序是该函数的实参

特点:立即调用函数

特殊作用:改变函数传递参数的方式

3、bind()

语法:直接连接在函数后面使用

函数名.bind()

对象名.函数名.bind()

参数:

第一个参数:函数内的this指向

第二个参数开始:依次给是该函数的实参

特点:不会立即调用函数,而是返回一个新的函数,新函数内的this被锁定死了

特殊作用:改变那些不会被立即调用的函数的 this

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。