鱼C论坛

 找回密码
 立即注册
查看: 3509|回复: 18

[庖丁解牛] 001 ※ 灵动的JavaScript |【小不二隆重登场!】

[复制链接]
发表于 2018-6-20 11:06:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
关于为什么要学习JavaScript设计模式,请看:传送门




7582b80ef9ced90a174554d6a831ae9e.png


结束了学生生涯的小不二,加入了鱼C科技有限公司

入职第一天,项目经理,玄武。

就布置给小不二一个任务:
写一个验证用户名、密码、邮箱的验证表单。


经过在鱼C论坛上《零基础入门学习Web》系列的学习,小不二认为这个任务超级简单~

于是很快写下了几个函数:
  1. //    验证用户名
  2.     function checkName(){
  3.         
  4.     }
  5.    
  6. //    验证密码
  7.     function checkPassword(){
  8.         
  9.     }
  10.    
  11. //    验证邮箱
  12.     function checkEmail(){
  13.         
  14.     }
复制代码


小不二很得意,然后通过SVN/GitLab备份代码。

将创建的代码先提交到项目组指定的文件中。

由于是刚入职的小白,玄武很关照(担心)小不二。

于是,在合并代码时,多看了一下小不二提交的代码。

果不其然,玄武看出了一点问题。

“小不二,过来一下”。

还沉浸在刚才喜悦中的小不二,走到玄武的办公室桌前。

“玄武老大,怎么了?”

“嗯,你刚才提交的代码,我看了一下,怎么那么多全局变量?”

“阿?哪里来的变量?”

小不二心里也在想:“哪里有变量吗,明明只创建了几个函数名而已嘛。是不是玄武大佬,搞错了。。。”

“你不是创建了三个函数吗?”

“是阿”,小不二很纳闷的回复。

心里在想:“神马,难道函数是变量???”

看到小不二那种纠结的小白表情,玄武眼中带着友善。

“小不二,你看阿,如果我这么写,来实现你写的代码可以吗?”

玄武立刻在电脑上,敲出了这几行代码:
Jun-19-2018 18-13-07.gif


“可以这么写,但是就会有hoist问题(声明提前)”
(详细阅读:0 1 5 7 ★ 寥寥数行代码玩透“hoist”

“没错,这么写的确有hoist问题,但是我们通过3个变量来保存函数,来实现你的功能。”

“嗯。”

看到小不二还没明白,玄武继续说到。

“你写的将变量名放在function后面,也代表了你的变量,所以说你也声明了3个全局变量。”

“嗯。但是....有什么问题吗?”

小不二心里还是很纳闷,小甲鱼老师明明也是这么写的啊,怎么回事。

看到更加纠结的小不二,玄武接着说。

“从功能上将,当然没问题啦,但是你今天才加入我们的团队,有些开发准则就要遵守。”

"嗯,刚才收到的开发准则,我仔细看了,有些细节是我平时没有关注的。"

“挺好的,那写文档,函数接口说明,你一定要仔细阅读哦,咱们部门的开发都是基于这些标准进行的。”

“好的,请玄武大佬放心,我一定仔细阅读”,小不二认真的看着玄武。

“很好,让我们继续说回上面的问题,当用你那种方法定义函数,如果团队中的其他人员也定义了,那么就会发生冲突,甚至覆盖功能。”

“哦哦,我知道了,所以需要将函数保存到一个变量里,这样变量重复,函数功能也不会冲突。”,小不二豁然开朗。

“对,就是这个意思。小不二,我考考你,你觉得还有什么更好的写法吗?”

“嗯,我还想到一种。”小不二此刻正在脑海中翻江倒海的想小甲鱼老师教过的“用对象收编变量”

想到方法后,小不二赶紧用手头的电脑写下:
  1. var  checkObject = {
  2.         checkName:function(){},
  3.         checkPassword:function(){},
  4.         checkEmail:function(){}
  5.     }
复制代码


看到小不二电脑上的电脑,玄武很高兴,自己招了一个对的人。

看来跟小甲鱼老师学过编程的人,基础就是这么扎实~

“小不二,你写的很棒,对象的方法也是一种很好的解决方案,这样我们就可以通过点方法遍历内部,通过检查对象checkObject,来访问内部方法。”

“是的,我们将所有的函数作为checkObject对象的方法,这样我们就只有一个对象,而我们想要使用它们也很简单。”

看到玄武赞同的点头,小不二继续说。

“这样当我们需要检测密码就可以这样写checkObject.checkPassword()。”

玄武发现小不二有点得意,决定要在考考他。

“小不二,既然你可以通过对象创建方法,那我这么写可以吗”

边说着,玄武,修改了小不二的代码:
Jun-20-2018 10-58-06.gif


"嗯.........."小不二此时有点紧张。

..........

预知后事如何,请看下回分解





课后作业


1、小不二的第一种写法:
  1. //    验证用户名
  2. function checkName (){}

  3. //    验证密码
  4. function checkPassword(){}

  5. //    验证邮箱
  6. function checkEmail(){}
复制代码


会带来哪些麻烦?

2、刚入职的小不二,用的SVN/GitLab是干什么的?

3、是否可以用点方法访问,访问对象内部的函数方法?



答案:
游客,如果您要查看本帖隐藏内容请回复





如果有收获,别忘了评分


                               
登录/注册后可看大图


这位鱼油,如果喜欢JS-设计模式,请订阅 专辑☞传送门)(不喜欢更要订阅



                               
登录/注册后可看大图

评分

参与人数 2荣誉 +6 鱼币 +6 贡献 +4 收起 理由
破灬王 + 4 + 4 + 3 鱼C有你更精彩^_^
dong628 + 2 + 2 + 1 无条件支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-20 11:48:33 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-21 10:07:53 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-3 18:16:59 From FishC Mobile | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-4 10:23:13 | 显示全部楼层
学习了一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-4 12:16:26 | 显示全部楼层
感谢不二大佬的分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-4 15:17:32 | 显示全部楼层
顶起来~~~~~~~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-5 09:00:21 From FishC Mobile | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-20 10:00:26 | 显示全部楼层
来学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-26 21:53:23 | 显示全部楼层
kanaknaknaknakan
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-4 17:20:10 From FishC Mobile | 显示全部楼层
看不懂中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-6 16:26:31 | 显示全部楼层
GitLab是Git的升级版吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-20 16:37:05 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-15 14:57:56 | 显示全部楼层
代码管理,可以用点访问
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-25 22:44:16 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-21 19:19:22 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-15 23:25:45 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-17 16:57:48 | 显示全部楼层
不会写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-22 20:07:42 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 21:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表