我看到很多项目里面对于 this 指向的写法都是 let self = this; 有些人跟我说就这样写,有些人又说这种写法不规范? 请教一下 V 站的大佬,哪种比较规范?
我看到很多项目里面对于 this 指向的写法都是 let self = this; 有些人跟我说就这样写,有些人又说这种写法不规范? 请教一下 V 站的大佬,哪种比较规范?
|
1
let self = this 没问题,以前很多库的源码都是这么写的,这东西无所谓的
|
|
2
let forClosure = this
|
|
3
let that=this
或者 let _this=this |
|
4
写 const 也行
|
|
5
既然已经用 let 关键字了,那么完全可以用箭头函数来规避这种语法,我反正是从写 ES6 开始很久都没这么写了,除非你有什么特殊需求?
|
|
6
这个问题上次不是都说了嘛:
const 这个 = this; 这个.submit(); |
|
7
为什么不用箭头函数
|
|
8
哪那么多讲究的,我都是 `const this2 = this`
|
|
9
箭头函数,self,that 都可以
|
|
10
const context = this
|
|
11
我之前看人用的 vm
|
|
12
自己怎么爽怎么 来..
|
|
14
好的,谢谢各位大佬解答。
|
|
BXGoJun 27, 2020 via Android
15
有文档规范
|
|
mxT52CRuqR6o5Jun 27, 2020 via Android
16
没有那种最规范,看团队怎么规定
|
|
SilentDepthJun 27, 2020
17
没见过有规范明确要求这样处理 this 。只要不产生歧义,并且你(和你的协作者)清楚 this 在代码中的实际指向,怎么写着爽怎么来。
|
|
surfwaveJun 27, 2020
18
用箭头函数啊
|
|
LxxyxJun 27, 2020
19
一直用的 ctx 。
```js const ctx = this; ``` |
|
ppgs8903Jun 27, 2020
20
let that = this
其他都容易冲突,self 用在 类 CLASS 的方案里面,不建议 |
|
VegetableJun 27, 2020
23
变量名还有啥规范,纯粹一点好吗,何况现在有箭头函数
|
|
ChanKcJun 27, 2020
24
|
|
wish8023Jun 27, 2020 via Android
25
建议用 ES6 语法,在现代浏览器,基本都可用了。
|
|
WilliamLinJun 28, 2020
26
let _this = this
|
|
hitaoguoJun 28, 2020
27
能不要新定义个变量就不要定义,这样能加深你对 this 指向的理解。
大部分情况下用箭头函数就能解决。 除非说在函数里面有它自己的 this 需要用到,同时还需要外部的 this,那么写 vue 的话我一般是 let vm = this 。 |
|
gitjavascriptJun 28, 2020
28
反正 let 肯定是不好的
|
|
guanhui07Jun 28, 2020
29
_this 或
that 用的人比较多 |
|
cz5424Jun 28, 2020
30
建议改成 ES6,不用 this 。this 真烦
|
|
TomatoYuyukoJun 28, 2020
31
见过用 entity = this 的也不错,
|
|
JunhJun 28, 2020 via iPhone
32
这好像和 vue 没什么关系吧
|
|
optionalJun 28, 2020
33
为啥是 let ? 这里显然应该用 const
` const self = this const $this = this const _this = this · |
|
Tdy95Jun 28, 2020
34
业务代码里面使用箭头函数,保证 this 指向不丢失即可。
vue 的生命周期等方法调用的时候都帮你把 this 实例注入了好了 |
|
35
其实写习惯了 C 系列语言都喜欢 let self = this
写习惯 java 的估计就喜欢 let that = this 写习惯前端的都喜欢用箭头函数。 |
|
xiangyuecnJun 28, 2020
36
This
|
|
MartoxJun 28, 2020
37
let that = this
|
|
soulmtJun 28, 2020
38
我就觉得很 low 多此一举不是么
|
|
sunwangJun 28, 2020
40
有了箭头函数就没用过这个写法了
|
|
kinghlyJun 28, 2020 via Android
41
先要明白为什么这么写,可以看下 js 闭包。let 、const 、()=>{}不是万能的。
|
|
ghosthcp516Jun 28, 2020
42
要么用箭头函数,如果要写兼容代码请用 var self = this,你这个等于是缝合怪写法
|
|
ryanlidJun 29, 2020
43
|