专栏名称: 码农翻身
工作15年的前IBM架构师分享好玩有趣的编程知识和职场的经验教训, 不容错过。
目录
相关文章推荐
51好读  ›  专栏  ›  码农翻身

javascript王国之函数教主

码农翻身  · 公众号  · 程序员  · 2017-07-27 20:12

正文

请到「今天看啥」查看全文


“主教兄,甚好甚好,要不这顿我请?小二!”


饭菜上桌,互相客套了几句之后,话题就开始了。


“主教兄,这是我最近认识的朋友,年纪轻轻就周游四方,他有些事情要问你。”


“哦?”函数式主教把目光放了过来,“有何见教?”


“久闻贵教派向来神秘,为何最近有如此多的新教徒加入呢?”


“哈,这个嘛 ... 现在的年轻人都不喜欢条条框框,本教向来以简洁强大著称,自然就受欢迎了。”


小王子心想,这个教主倒也是有话直说、自卖自夸,不过难道没了面向对象这种强大的武器,他还能变出怎么样的花儿来?


“那还敢请教教主大人,依你看要怎么实现 Animal, Cat, Dog 这些对象呢?”想了一会儿,小王子认为不如直接发问。


“这个嘛,本教派并无对象这种说法,不过如果你愿意,也可以构造一个对象出来,只需要......”


“我们拜函数教不用对象~”,还没等着主教说完,旁边的妹子突然发话了。


“哦,小兰,你来说吧。”这位被叫做小兰的少女像是主教的助手,看起来深得主教信任。


“嘻嘻,教主大人说的太复杂了,其实实现你说的那些根本不用什么对象。”


“哦?那该怎么做?”小王子顿时来了兴趣。


2

函数是一等公民


“你想啊,搞出来这些猫啊狗啊的,不就是想让他们都可以吃东西么?干嘛要封装到一个对象中,太压抑了”



哦!Java 小王子恍然大悟,在 自己的Java帝国,法律非常严格, 类和对象才是一等公民, 函数是不可能独立存在的 , 你即使是想输出一个简单的hello world , 也必须写一个类,在类中写一个方法 , 在这个方法中才能输出hello world 。


在这里函数已经翻身做主人,成为了一等公民,再也不用困在对象的牢笼中,声明后就可以直接使用。


“也就是说,猫、狗都可以直接拿来调用咯?”


“是的呢~ 不止是猫、狗,连人都能作为参数调用呢, 只要一个对象有name这个属性就行啊”小兰的脸上还是一样的笑容。



长期在一个强类型的语言中生活,小王子对这种有点“变态”的灵活性还真不习惯, 他说:“在Java帝国,方法的参数都有确定的类型,如果你的方法写错了,IDE就能自动帮你检测, 减少了很多错误,现在可就没这种福利了。”


“有得必有失嘛”小兰笑道 “你可以多写一点单元测试来保证正确性啊”


“既然函数是一等公民, 我相信它不止这点能耐吧?“


“那是自然, 我们这里的函数还可以作为参数传递给另外一个函数呢 !”








请到「今天看啥」查看全文