lyp123

首页 » 编程 » 正文

浅谈前端之“this”

2020-03-03 11:03编程2332人阅读

随着箭头函数的发展以及普及,this的范围老是困扰我,最近就总结一下吧

首先先上图总结一下: lyp123_2020-03-03_11-41-58.png

1.默认情况

这个很好解释,举个例子来说

lyp123_2020-03-03_11-59-47.png

包括类也一样

lyp123_2020-03-03_12-01-08.png

然后函数function有点不同的是,function的上级是window,所以指向的是window.function,具体如下图:

lyp123_2020-03-03_12-03-01.png

2.显式绑定

顾名思义,显示绑定就是将某个数据或者说对象绑定到某个函数或者类上面,具体方法如下图:

lyp123_2020-03-03_12-05-48.png

3.箭头函数

ES6已经出来这么久了,相信大家对箭头函数=>已经不陌生了吧,尤其是熟悉Promise的朋友,经常会写到func.then(res => {}),那么在后面的这个括号里面来说,this又指向什么呢,拿我前面写到那个举例子,this指的是func外部的this带入内部,而不是默认里面的内部的,这么说肯那个有点难理解,下面看一个图:

lyp123_2020-03-03_12-10-36.png

如果中间是function的时候指向会在内部的value,但是箭头函数指向的是外部的value

4.严格模式

这里的严格模式指的是'use strict'(后期会特别讲解这个严格模式),在严格模式下,this不会直接继承window的属性,想要调用的话必须带着根元素定义,效果如下图:

lyp123_2020-03-03_12-12-07.png

2评论

sinemora
sinemoraChrome/80.0Windows 10.0

2020-03-03 18:07:08

水印是自动生成的吗 :?:
回复
小明
小明AuthorSafari/604.1iPhone

2020-03-03 18:09:37

回复 sinemora: 是啊 :!:
回复

添加新评论