JavaScript自执行函数
1.自执行函数是什么
自执行函数也叫立执行函数
是将函数的声明和调用合并在一起
2.自执行函数存在的意义
自执行函数是为了封装
不需要将普通的函数特意换成自执行函数的写法
2.1封装
目的: 通过命名空间(本质是一个普通的对象)或自执行函数实现程序的基本封装,提升程序的可维护度
//–命名空间的解释看另一篇文章,后续会出–//
大型项目中设计的代码量是惊人的,然而代码并非一成不变,随时会面临功能升级或者bug修复,因此需要有良好的代码组织管理的方式,才能保证将来维护代码时更加的高效
3.自执行函数两种常见的的写法
3.1自执行函数的第一种写法
;(function () {
//代码块
})()
//解析
第一步
先写两个()
() ()
第一个()可以这样想
1 + 1 * 3 我想先执行 1 + 1
(1 + 1) * 3 这样就实现了先执行()内的
把函数放进()去
(function () {})
第二步
(functon () {}) ()
第一个()可以看作一个函数 后面这个()则是函数的执行
3.2自执行函数的第二种写法
;(function () {
// 代码块
}())
//解释
第一步 将函数放在()内
(function () {})
第二部 在函数的{} 后面加一个() 表示调用
(function () {} ())
4.自执行函数的传参
4.1 第一种写法
// 形参在function旁边的() 与普通函数一样
;(function (x,y) {
return x + y
//实参在最后的()中
})(1,2)
4.1 第二种写法
// 形参在function旁边的() 与普通函数一样
;(function (x,y) {
return x + y
//实参在最后的()中 注意两种写法的括号位置是不一样的
}(1,2))
5.自执行函数的总结
1.自执行函数与普通函数无本质区别,简化了普通函数的步骤
2.自执行函数与普通函数一样,同样具有形参和实参
3.自执行函数实际是函数表达式,属于高阶函数
4.自执行函数一般使用匿名函数(因为外面具名外面也无法获取----下面上代码)
// 这样写已经自执行了
;(function fn() {
console.log('我是fn函数')
})()
//在外面去调用自执行函数fn()
fn() //控制台打印 fn is not defined 未定义就是没有找到
// 可以在函数内部调用具名的自执行函数
;(function fn() {
console.log('我是fn函数')
fn() // 这样的后果是一直执行
})()
看这里
上面提到的命名空间会出文章解释一下,喜欢的朋友可以收藏一下网址
也可以看看鄙人的其他文章有没有对大家有帮助的