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