正文
立即执行(调用)函数特征(大前提:function后面有两对小括号,不算{}里面的小括号):(三者必居其一)
-
function前面加 !、+、-、~,void,new -
function被括号包起来-有两种,根据括号的范围不同来分 -
function前面有=(var a = function(){})
function f() {
console.log("我是函数")
}
// //
// f()
(function f1() {
console.log("我是立即执行函数,形式是(function(){})()")
})(); // 看着清晰
// f1()
(function () {
console.log("我是立即执行函数,形式是(function(){}())")
}());
//
//
!function test() {
console.log("我是立即执行函数,形式是+、-、! 、~、void、new function(){}()")
}()
立即执行函数特点1:
-
自动执行,执行完之后立即释放(就是说这个函数执行完之后自动销毁, 你再次调用的时候会报 ReferenceError的错误);
(function f1() {
console.log("我是立即执行函数,形式是(function(){})()")
})();
f1();//这里会报错
函数表达式特征:
-
function前面有等号(类似 var/let a = function(){}
这种形式);
/ function后面有两对小括号,立即执行,下面这个叫立即执行函数
var test2 = function () {
console.log("这里是函数表达式后面加了一个括号"); // 1
}();
// 因为执行完毕即可销毁,外部调用不到test2函数
// console.log(test2())//Uncaught TypeError: test2 is not a function
//函数表达式,function后面只有一对小括号,{}里面的不算
var test112 = function() {
console.log(112);
};
test112()//1
总结
原文始发于微信公众号(迪哥讲事):JS精髓-04-函数立即执行函数
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论