js函数作用域

函数是一种特殊的对象,他有".name"属性

例:

function hh(){}
hh.name;//"hh"

还有一个[[scope]]属性,但是这个属性只供JavaScript引擎访问,它就是作用域,它储存的运行期上下文的集合,这个集合成链式链接,就叫做作用域链。

function a(){
	function b(){
		function c(){
						
		}
		c();
	}
	b();
}
a();
/*
a 定义 a.[[scope]] ---> 0:GO
			
a 执行 a.[[scope]] ---> 0:aAO
		        1:GO
								   
b 定义 b.[[scope]] ---> 0:aAO
			1:GO
								   
b 执行 b.[[scope]] ---> 0:bAO
			1:aAO
			2:GO
								   
c 定义 c.[[scope]] ---> 0:bAO
			1:aAO
			2:GO
								   
c 执行 c.[[scope]] ---> 0:cAO
			1:bAO
			2:aAO
			3:GO
底层函数是站在最近父级函数的作用域上诞生的
*/




你可能感兴趣的:(JavaScript)