
获得徽章 0
- 学习、看书、电影
去年年底一只全栈狗开始在掘金从零学习 Flutter,年初开始在家远程办公半年,使用 Flutter 写完了一个街舞视频 App 《唯舞》 ,目前已经上架。这半年对我来说最大的收获就是 Flutter 这项技能,要特别感谢糖果群的几个管理大佬,每次遇到问题基本都是找 Alex、法佬、低调等大佬请教,基本都是有问必答(劝退警告).
每天睡觉前会习惯看一小时书,上半年大概读了 11 本书
《爱的艺术》、《我们时代的神经症人格》、《非暴力沟通》、《一直特立独行的猪》、《逃离》、《南方高速》、《月亮与六便士》、《娱乐至死》、《当我们谈论爱情时我们在谈论什么》、《白鲸》、《霍乱时期的爱情》。俗话说人丑就要多读书,呜呜呜,钱也没赚到多少,只好安安分分地过好自己的小日子。
疫情期间喜欢用音乐剧、歌舞类的电影打发无聊的时间,什么音乐之声、悲惨世界、猫、歌剧魅影、窈窕淑女、爱乐之城等都被我刷了一遍,人生是一场远行,每段历程就像一部电影,感慨自己的人生无法控制方向,只好在借助电影自我慰藉。
最近喜欢上了一支伟大的乐队 Pink Floyd ,经常整轨循环着《月之暗面》和《迷墙》两张神专写代码,电吉他的魔力是在太大了,下半年的计划便是学习电吉他、去现场看音乐剧!!!有相同爱好的小伙伴可以找我交流交流~
6 月份北京又爆发疫情了,希望这波疫情早点结束 (=・ω・=) 爱掘金!求点赞!!想中奖!!!展开5739 - #划个知识点 一直觉得context这个概念理解起来非常费劲。context基本出现在这样的场景:这里的this指代什么?回答是拥有该函数的context。context的中文翻译是上下文。那么这个回答就是拥有该函数的上下文。
一提到上下文,我就会想到语文老师说的“联系文章的上下文来解读这一段”。但是在JS中,并没有文章的概念。在这个回答里,勉强接近文章这个概念的,似乎就是对象了。那这个回答翻译过来就是:拥有该函数的对象。
这样看上去,this这个概念未免也太好理解了吧。this就是拥有该函数的对象,一目了然,简直不要太简单~但当我们使用bind、call、apply这三个函数重新绑定函数的作用域时,这个理解就是错的。
举个例子,obj1.function1。如果在function1中使用关键词this,那么this指代的是什么?按照上面的理解,this应该指代的是obj1,这是对的。接下来我们使用bind函数对function1进行改造:obj1.function1.bind(obj2)。这里的this指代的是什么呢?按照上面的理解,this应该指代的应该还是obj1,但实际上this指代的是obj2。
从上面的例子可以看出,将this的定义“拥有该函数的context”t翻译为“拥有该函数的对象”不能说完全错误,但显然是不准确的。context就是一个独立的概念,尽管这个概念翻译过来是如此的别扭。
上面还提到了作用域的概念,将context翻译成作用域好不好呢?我们带入this的定义看看:拥有该函数的作用域。将这个概念带入上面的例子,两种情况都能吻合,看上去很完美啊。但作用域这个概念更偏向范围,“拥有该函数的范围”,读起来也觉得怪怪的。
当然还有一种理解,就是我们将bind、call、apply的理解稍微翻译一下。我们将bind、call、apply理解为“更换该函数的拥有者/拥有对象”,那对this的第一种理解“拥有该函数的对象”就很准确了。使用bind函数之前,拥有function1的对象是obj1,因此function1内部的this指代的就是obj1。使用bind函数之后,拥有function1的对象就变成了obj2,因此function1内部的this指代的就是obj2。
总之,我觉得context的中文翻译还是要改~~~~展开29