函数在定义它的作用域中执行,而不是在调用它的作用域中执行:
var x = 1,y=2 ,z=0; function f(){ z=x+y; console.log(z) } (function(){ var x=3,y=4; f(); })();输出:3