封闭函数
什么是封闭函数?为什么要把函数封闭起来呢?
一个函数定义之后,必须在程序某个地方调用才能去执行,但是封闭函数就不需要去调用,它会在定义之后原地自动执行,而且,在我们正常的程序中,如果两个函数定义的名字重复了,那么其中一个函数是会覆盖掉另外一个函数的功能,最终只有一个函数在执行,那么怎么避免函数同名的情况呢?或者是说,怎么避免我在拿到一份同事写好的代码,想在上面添加新的功能时,才能不去定义一个和它原来的函数同名的函数呢?那么!封闭函数就可以帮你做到,下面直接上代码,只要按照格式把你的程序放到封闭函数里面,就不用担心同名函数互相覆盖功能的问题了。
封闭函数是javascript中匿名函数的另外一种写法,创建一个一开始就执行而不用命名的函数。
一般定义的函数和执行函数:
function changecolor(){
var oDiv = document.getElementById('div1');
oDiv.style.color = 'red';
}
changecolor();
封闭函数:
(function(){
var oDiv = document.getElementById('div1');
oDiv.style.color = 'red';
})();
还可以在函数定义前加上“~”和“!”等符号来定义匿名函数
!function(){
var oDiv = document.getElementById('div1');
oDiv.style.color = 'red';
}()
~function(){
var oDiv = document.getElementById('div1');
oDiv.style.color = 'red';
}()