//测试
let girlFriend1 = Girl.getAGirlFriend(); // 生成一个女朋友
let girlFriend2 = Girl.getAGirlFriend();// 你企图再生成 一个女朋友
//但是发现其实 生成的是同一个女朋友
//可以看看验证
console.log(girlFriend1 === girlFriend2); //打印结果为:true
可能基础不大好的同学,看到那么多括号,会感到头晕目眩的,其实这是用到了闭包的知识
,如果不用闭包的话,代码是这样的
//话不多说,赶紧找个女朋友
Girl.getAGirlFriend = function () {
let girlFriend;
return function () {
if (!girlFriend){
girlFriend = new Girl(); //恭喜你,成功脱单,生成一个女朋友成功
}else {
//你已经有女朋友啦,就不再创造了,下面返回的 还是你 的 现任
}
return girlFriend;
}
};
这样就看起来容易理解一些,但是这样会出现一个错误
就你
let girlFriend1 = Girl.getAGirlFriend(); // 生成一个女朋友
的时候,获得的是
function () {
if (!girlFriend){
girlFriend = new Girl(); //恭喜你,成功脱单,生成一个女朋友成功
}else {
//你已经有女朋友啦,就不再创造了,下面返回的 还是你 的 现任
}
return girlFriend;
}
是这个还没有执行的方法
你必须使用闭包来让这个方法自动执行。
可能没接触过闭包的同学还是难以理解,推荐可以看一下 我的另一篇文章 详解js闭包。
=========================================================================
3.1.模拟登录框
利用单例模式思想 来实现 登录框的 显示和隐藏
下面这段 是不是似曾相识的感觉
测试一下
let login1 = LoginForm.getInstance();
login1.show(); //打印:登录框显示成功
let login2 = LoginForm.getInstance();
login2.hide(); //打印:登录框隐藏成功
可见 ,login1 和login2 是同一个实例
可以再测试一下
let login1 = LoginForm.getInstance();
login1.show(); //打印:登录框显示成功
let login2 = LoginForm.getInstance();
login2.show(); //弹窗:已经显示
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!