与像Java这样的语言中的块级范围相比,JavaScript中的功能级范围的优缺点是什么?

我希望看到使用函数级范围用法的示例,这些示例使用块级范围更难或更不可能实现。

最佳答案

我想到的第一个示例是:如果使用块级范围实现,JavaScript对closures的处理将更加昂贵。

当您在JavaScript中输入函数时,将分配一个对象(嗯,一对夫妇,但我们将重点放在一个对象上),最终该对象成为“变量对象”-即该函数调用的所有参数和局部变量被保留(作为属性)。闭包实际上使用的是这个对象(不仅仅是它似乎使用的“符号”;这是一个常见的误解)。这些对象串在一起,称为作用域链,该链用于解析不合格的符号。

想象一下,如果每个模块都引入新的示波器,那会贵得多。

关于javascript - 函数级范围的优缺点(特别是在Javascript中),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3791430/

10-10 12:56