读《不知道的js》中作用域,模拟引擎对话作用域
发文原由
身为刚接触前端的小白,深知书本乃是人类进步的阶梯(作者开始装x),秉承不能浪费大好青春的宗旨,在国庆假期为自己充充电(大神们别,别,有话好好说,先放下砖头),遂鼓起勇气拿起《你不知道的js》,当看到书中对于一段对话的描述,感觉十分魔性与格外形象,兴趣大增,所以想试着练习模仿,加深对知识的理解,废话较多还是进入正题吧
示例代码:
eg:function foo (a){
var b = a;
return a + b;
}
var c = foo(2);
当代码执行时可能会有这样的对话:
引擎:作用域老哥,问你个事。
作用域:引擎老弟,啥事,尽管说。
引擎:我需要对c进行LHS引用,你见过它吗?
作用域:哦,这事啊,见过,刚刚编译器老弟刚声明了它,他是一个变量,拿去吧。
引擎:谢谢老哥,那我给他赋值,还有老哥,我要对foo进行RHS引用。
作用域:这个也有的,我找找,喏,在这,是一个函数,给你。
引擎:好嘞!太感谢了老哥,那我来执行下foo。
作用域:那都不是事!看看还有吗?我在帮你看看!
引擎:扎心了老铁!还有还有,我要对a进行LHS引用,帮我找找有它吗?
作用域:稍等啊,有有,刚刚编译器把他声明为foo的形式参数了,给你。
引擎:好的,老哥我要以身相许!还有我要对b进行LHS引用,你见过吗?
作用域:、、、只要别以身相许都好说,b在、、、哦,在这,它是foo函数里的,一个变量,给你 给你!
引擎:么么哒老哥!那这个a呢,我要对它进行RHS引用,虽然有点印象,但是还是确认下。
作用域:是的没错,还是那个a没有动过,放心拿走用吧!
引擎:好的好的!老哥,最后一个问题,帮帮老弟,帮我我就是你的,我要分别对a b 进行RHS引 用,在帮老弟看看确认下,拜托啦,萌萌哒!
作用域:(꒪Д꒪)ノ,有有有,都没变过,你放心用吧!
引擎:都不知道怎么谢老哥了,今晚有空不,今晚、、、诶,别走啊老哥,明晚也行、、、
(纯属娱乐)
小结:
虽然这些对于目前准备工作的同学们并没有什么卵用,但是大神曾经说过,我也非常赞同的就是,一些原理性的根本性的知识,或许短期,或者在工作中根本不会有什么帮助,但是万变不离其宗,再怎样开枝散叶,根是不变的,我这人比较喜欢刨根问底,虽然知识差的很多,有些内容刨深了,就会遇到超出自己理解能力范围的内容,如果大神网络也解决不了,也会暂时记下,终要弄清楚的,同时第一次发文,胸无点墨,工笔较差,但我在努力,加油。