立即执行函数中的变量私有化

129 阅读1分钟

前几天刷到一道js题,关于立即执行函数里面的变量私有化问题。

var foo={n:1};
(function (foo){
console.log(foo.n)//1
foo.n=3
var foo={n:2}
console.log(foo.n)//2
})(foo)
console.log(foo.n)//3

打印的结果为1,2,3

知识点:

立即执行函数里面声明的变量是私有变量,不会影响外界的值

还有一个注意点,立即执行函数前面的一句代码必须加上;号,不然会报错,报错的图如下

image.png