因为main函数中的foo变量使用var声明,所以foo函数作用域中就有foo变量,然后变量声明提前,所以就会访问到undefined。如果本题中main函数的foo变量没用var声明,就会通过原型链访问到全局作用域的foo,就会得出结果1