这是我参与8月更文挑战的第7天,活动详情查看:8月更文挑战
前言
闭包是什么,闭包怎么用?看了很多相关文章虽然看懂了其中的逻辑,但是在日常开发中还是没理解什么场景下改使用闭包。
mdn实用介绍
size在父函数执行完毕变量被销毁之前,size会被打成闭包传到子函数
function makeSizer(size) {
return function() {
document.body.style.fontSize = size + 'px';
};
}
var size12 = makeSizer(12);
var size14 = makeSizer(14);
var size16 = makeSizer(16);
document.getElementById('size-12').onclick = size12;
document.getElementById('size-14').onclick = size14;
document.getElementById('size-16').onclick = size16;
日常写法
按开发逻辑通常以上功能我会写成这种方式,那么它有什么弊端的呢?那些场景需要用到闭包。
function makeSizer(size) {
//return function() {
document.body.style.fontSize = size + 'px';
//};
}
//var size12 = makeSizer(12);
//var size14 = makeSizer(14);
//var size16 = makeSizer(16);
document.getElementById('size-12').onclick = makeSizer(12);
document.getElementById('size-14').onclick = makeSizer(14);
document.getElementById('size-16').onclick = makeSizer(16);
求助大佬帮忙解答该问题,感恩。