回调、匿名函数、闭包

 2023-09-06 阅读 19 评论 0

摘要:匿名函数:简单来说就是无函数名的函数。 基本写法: // 用()包起来,没有会语法报错: (function (){alert(1); })// 如果需要运行,() ,则自调用: (function (){alert(1); })()// 自调用,并传参: (function (str

匿名函数:简单来说就是无函数名的函数。
基本写法:

// 用()包起来,没有会语法报错:
(function (){alert(1);
})// 如果需要运行,() ,则自调用:
(function (){alert(1);
})()// 自调用,并传参:
(function (str){alert(str);
})("a")

应用场景:

// 1、函数表达式;以此变通,x可以是一个点击事件、可以是对象中的一个方法元素、可以做回调等
var x = function (){alert(1);
}// 2、回调函数;
setInterval(function(){alert(1);
},1000);// 3、模仿块级作用域,优点:减少全局变量可能带来的混乱,并且执行完后会被直接销毁,节省内存。
function fn(){(function(){var a= 1;})();alert(a);// a is undefined
}
fn();// 4、闭包,可访问函数作用域内的变量。
for (var i = 1; i < 3; i++) {(function(x) { setTimeout(function() {console.log("inner:"+x); // 1、2}, 100)})(i)}
console.log("outer:"+i);  // 3

关于调用,比较二者区别,就懂了:

function fn1(){return "a"
}
var way1 = fn1();
console.log(way1); // a
function fn2(){return function(){return "b";}
}
var way2 = fn2();
console.log(way2()); // b,如果way2没有(),匿名函数就无法调用,整个匿名函数就会作为文本返回回来

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/4438.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息