JS 函数上下文 闭包

  • 在传统的OO语言中,函数的上下文是由声明函数时确定的,例如静态函数通过类名调用,上下文是类。非静态函数通过类的实例调用,上下文是类的实例。而在javascript中函数首先是一个对象,它的上下文不能由声明时确定,而是由谁来调用来确定。也可通过使用call()和apply()来强行指定上下文。
  • 闭包就是一个函数实例,该实例执行时需要的局部变量,来自其声明处。