每一个函数,执行过后,里面的变量都会被释放掉,只要没有人用到它了 也就是说每调用一次函数,就会产生一个新的函数作用域这么说:setTimeout执行的时候,输出的x,是当时执行setTimeout时他所在作用域的x
所以输出结果才会是: 1 2 3而不是3 3 3