首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

学习闭包的时候 ,接触到了语法分析树(SyntaxTree)概念,有一点不明解决思路

2012-06-04 
学习闭包的时候 ,接触到了语法分析树(SyntaxTree)概念,有一点不明语法分析树(SyntaxTree)的概念是JS引擎创

学习闭包的时候 ,接触到了语法分析树(SyntaxTree)概念,有一点不明
语法分析树(SyntaxTree)的概念是JS引擎创建了一些表,用来记录每个方法内的变量集(variables),方法集(functions)和作用域(scope)等 

请问比如这个嵌套函数
var x=1
function a(){
  var y=2
  function b(){
  var z=3  
  }
}
请问在没有发生任何函数调用的时候,js就已经创建了函数b的语法分析树了吗,也就是说js解析器已经知道局部变量b的存在是吗?

[解决办法]
不是的,是执行a的时候才会解析function b,即创建b,且b有个[[scope]]属性会指向a的运行时环境

热点排行