Javascript中的不同范围 - 词汇与动态

时间:2017-07-20 19:26:40

标签: javascript scope

我正在经历范围界定概念,我发现可以实现词法和动态范围。任何人都可以根据JavaScript帮助我理解词汇和动态范围 之间的主要 区别是什么?

另外,我们如何 在JavaScript中实现

1 个答案:

答案 0 :(得分:-1)

在词法作用域中,只能从定义它的代码块中调用该变量。编译程序时定义该变量的范围。该变量可以通过其子进程的执行上下文来访问。但它不会向其父母反向工作,这意味着变量喜欢它的父母无法访问。

在动态范围内,可以从代码块外部调用声明的变量。在这里,编译器首先在本地函数中搜索变量引用,然后在调用本地函数的函数中搜索,然后在调用该函数的函数中搜索,依此类推,调用堆栈。 "动态"指的是更改,因为每次调用给定函数时调用堆栈都可能不同,因此函数可能会根据调用它的位置命中不同的变量。

http://wiki.c2.com/?DynamicScoping