2021-4-25。
一。立即执行函数
代码如下:
<script>
(function (形参) {
})(实参)
</script>
1.函数会被立即执行
2.在函数function(){}内部定义的变量不会与外界冲突,但外界无法访问匿名函数内部的变量,可用于闭包–其实就是立即执行的闭包
二。闭包
在没有引入let关键字时,由于没有块级作用域,可能会造成变量污染,也即外部变量可能会覆盖内部变量。为了使变量拥有自己的作用域,就出现了闭包技术,将变量或者函数定义在函数内部,使这些结构拥有函数作用域:
function(){
...
}
1.一个函数每次被调用都是不同的作用域,重复调用不会修改其他函数内部的值,举例:
<script>
function test(num) {
var res=num+1
console.log(res)
}
test(1);
test(2);
test(3);
</script>
2.在函数内部定义的函数和变量不能被外界直接访问–类似java类中的私有属性和方法,可以返回函数来间接调用这些内部定义的结构,举例:
<script>