功能级范围的优缺点(特别是在Javascript中)

Gli*_*ide 6 javascript

与Java等语言中的块级范围相比,Javascript中的功能级范围的优缺点是什么?

我想看看使用块级范围更难或不可能实现的功能级范围使用的示例.

T.J*_*der 5

首先想到的例子是:如果使用块级范围实现,JavaScript对闭包的处理会更加昂贵.

当你在JavaScript中输入一个函数时,一个对象被分配(好吧,一对,但我们将专注于一个),最终成为"变量对象" - 也就是说,该函数的所有参数和本地变量调用持有(作为财产).闭包实际上使用的是这个对象(不仅仅是它似乎使用的"符号";这是一种常见的误解).这些对象串在一起,称为范围链,用于解析不合格的符号.

想象一下,如果每个块都引入了新的范围,那将会是多么昂贵.