大家应该写过下面类似的代码吧,其实这里我想要表达的是有时候一个方法定义的地方和使用的地方会相隔十万八千里,那方法执行时,它能访问哪些变量,不能访问哪些变量,这个怎么判断呢?这个就是我们这次需要分析的问题——词法作用域 var classA = function () { this.prop1 = 1; } classA.prototype.func1 = function () { var that = this, var1 = 2; function a() { return function…