闭包函数的理解:有权访问另一个函数作用域内变量的函数都是闭包。
但还是理解不了,闭包函数的意义
(function() {})();
这是闭包函数,匿名函数;js中(function(){…})()立即执行函数
需要注意与 (function())的区别: ( f u n c t i o n ( ) ) 的 区 别 : (function(){})是$(document).ready(function(){})的简写,用来在DOM加载完成之后执行一系列预先定义好的函数。
JS函数命名方式
1.声明式
而声明式会导致函数提升,function会被解释器优先编译。即我们用声明式写函数,可以在任何区域声明,不会影响我们调用。
function XXX(){}
而平常的function(){}则是一种声明式,如果加上()括号后,则会被编译器认为是函数表达式,(加上+-号都可以),从而可以用()来直接调用
(function fn1(){})();
函数表达式
函数表达式我们经常使用,而函数表达式中的function则不会出现函数提升。而是JS解释器逐行解释,到了这一句才会解释。因此如果调用在函数表达式之前,则会调用失败。
var k = function(){}
fn1();
function fn1(){}//可以正常调用
fn2();
var fn2 = function(){}//无法调用
==对函数表达式加上(),是可以直接调用的,
但是如果是对声明式的后部加上()则是会被编译器忽略==。
var fn2 = function(){}();//对,就是这样
function fn1(){}();//会被忽略