JavaScript作用域与引擎
最近在看作用域与引擎时,想起来一个段子。
故事的前景:当作用域嵌套,函数中的作用域里没有某个元素,而引擎需要对该元素进行RHS查询(也就是找源头操作)
代码:
function foo(a){
console.log(a+b);
}
var b = 2;
foo(2);
主角当然是我们的函数作用域及全局作用域还有引擎啦
引擎:函数作用域兄弟,见过b吗?
低情商做法👇🏻
作用域:没听过,滚😡
引擎:全局作用域兄弟,见过b吗?
高情商做法👇🏻
作用域:当然~好兄弟,我给你吧!
哈哈哈哈,好像演了个小剧场。这个梗,还能再换个剧场玩一玩。
低情商做法👇🏻
引擎:(凶神恶煞的语气,狂妄不羁的态度)喂,函数作用域,见过b没?
作用域:第一,我不叫喂!我叫函数作用域,第二,跟域说话要有礼貌,在这里没人惯着你!第三,这个b,我听都没听过,你给我走开!(函数作用域破口大骂,引擎灰头土脸走开了)
高情商做法👇🏻
引擎:(如沐春风的态度,真挚的眼神)阿foo函数的上级作用域兄弟,阿不对!竟然是全局作用域老大哥,久仰大名!大哥大哥,你见过b吗?我需要对它进行RHS引用呢,小弟找它好久了,老板要的急!
作用域:(被一声声大哥叫的心花怒放)当然见过啦,给你b,对了,有啥事报大哥名字,找大哥,大哥给你帮忙!大哥办事,你放心!
引擎:好勒,谢大哥,小弟先走啦!回见!