这些概念之间有什么区别?我正在寻找答案。
据我了解,词法范围与一个函数和环境相关联,并且函数值是该原始函数和操作的一部分,而不是环境的一部分。
我的意思是...“在您的解释器中,变量总是在调用者传递的环境表中查找或作为变量而不是某些全局env堆栈保存。您的eval操作的签名就像eval(expression,env)=> value。 当解释代码调用一个函数时,环境不会传递给该函数。函数应用程序操作的签名类似于apply(function,arguments)=> value“
我还了解类型签名对函数的参数进行排序,但是为什么首先给出返回值参数呢?
因此,我认为JavaScript(尽管很奇怪,它是由.AJAX ..?即时加载的)的数量级要高得多,因为每个对象都是可变的,并且环境必须与每个对象保持关联更改对象,而不是基于类的原型,后者将更宽的条形关联起来。
抱歉,这听起来有些麻烦,我对此并不熟悉,我只是在寻找某个方向。 Idk。