至于那个setTimeout,其实是JavaScript中有些函数内置了一个上下文参数,例如forEach(),setTimeout()这种,但是setTimeout是全局对象方法,所以this的值指向了全局对象,也就相当于在全局对象的环境下执行了foo()函数,输出的值为全局环境的a的值