function test() {
var n = 0
for (var i = 0; i < 1; i++) {
var n = 1 // 没有声明新的n;只是对前面的n赋了新值而已
}
alert(n) // 1
alert(i) // 1;i在此也可以访问
} function test() {
var n = 0
for (var i = 0; i < 1; i++) {
(function () { // 声明了一个匿名函数
var n = 1 // 声明并初始化了新的n
})() // 直接在声明完匿名函数后调用之
}
alert(n) // 0
alert(i) // 1;i在此也可以访问
}
控制作用域,避免命名冲突,匿名函数的好处体现出来了
本文通过两个示例展示了JavaScript中匿名函数如何帮助控制作用域,避免全局变量引起的命名冲突问题。通过对比两种不同情况下的变量n和i的输出结果,说明了在循环内部使用匿名函数立即执行表达式(IIFE)来隔离变量的作用。
826

被折叠的 条评论
为什么被折叠?



