引擎与作用域之间的对话

今天很偶然的看到一本书,看到了引擎与作用域之间的对话。看看我们的编译器是怎么来执行它的。希望对大家有所帮助!

function fun(a) {
  console.log(a);  //2
}
fun(2);

 

下面是引擎和作用域的对话,怎么来执行这些代码:

引擎:嘿!作用域,我需要为fun进行RHS引用。你见过它吗?

作用域:别说,我还真见过,编译器那小兔崽子刚刚声明了它。他是一个函数,给你!

引擎:哥们太够意思了!好吧,我来执行一下fun!

引擎:作用域,还有个事儿。我需要为啊进行LHS引用,这个你见过吗?

作用域:这个也见过,编译器最近把它声明为fun的一个形式参数了,拿去吧!

引擎:大恩不言谢,你总是这么棒!现在我要把2复制给你。

引擎:哥们!不好意思又来打扰你了。我要为console进行RHS引用,你见过它吗?

作用域:咱俩谁跟谁啊,再说我就是干这个的。这个我也有,console是我这一个内置对象。给你吧!

引擎:么么哒!(づ ̄ 3 ̄)づ~~~~我得看看这面是不是有log(。。)。太好了,找到了,是一个函数!

引擎:哥们,能帮我再找一下对a的RHS引用吗?虽然我记得它,但想在确认一次。

作用域:放心吧,这个变量没有变动过,拿走不谢。

引擎:真棒!我来把a的值,也就是2,传递进log().

 

posted @ 2017-03-04 15:21  Black_Jay  阅读(153)  评论(0编辑  收藏  举报