首页 > 实现某项功能函数的封装

实现某项功能函数的封装

最近自己在锻炼一些小的项目,比如图片轮播、随机取图片等demo,我指的是在小项目中,每次写完总觉得代码没有组织、没有条理化。于是乎,在网上看到这样的函数封装方法,感觉挺简单,主要分为初始化、触发事件元素、事件绑定、事件函数定义四大块,但是不知可不可取。

1、请评价一下这种封装方法的优缺点,对于小项目可取吗?
2、列举一下其他对于初学者较容易接受的封装方法,最好有如图的实例。


我觉得其实一般般…这种分装方式有点“为了封装而封装”的感觉…


这问题太主观了,不好回答。具体好不好用还是要看项目的规模和性质,你说小项目有多小?多大对你来说算大?按照这样的写法有没有遇到问题或是预见到会有问题?就好像不要过早做性能优化一样,代码组织的优化也是要渐进式的,针对具体问题来做的,很难一概而论。

从个人角度我还是建议你去使用某种模块封装系统,在开始阶段会有学习的成本(但并不大),但后期会少很多弯路,会少很多需要自己去单独造轮子的情形。或许有人会说“小项目而已,用得着吗?”我自己做过很多小项目,但无论多小我都是按照我们做正规项目的架构和流程来编写的,简单的说就是为了一致性。当然我们团队内部的架构和流程都是自动化的,搭建起来非常简单,不过凡事都会有第一次,早一天胜过晚一天。

见仁见智吧,很多时候答案其实是来自于自己对自己的要求。


图中的这种封装方法好处就是减少了全局变量的个数,因为方法都是test.xxx调用的,test充当了一个命名空间的角色,缺点就是test本身还是一个对象,所以外部可以随意修改重写,不够安全,比如你上面的a在外部可以直接改掉,所以,如果有需要保护的私有变量,可以使用IIFE模式来写。


个人是使用面向对象,便于拓展和继承的想法来初步封装的。举个例子,比如说图片轮播,我会先抽象为轮播动作处理、图片处理、DOM元素处理,这三大块来进行封装;图片轮播之后,可以再在继承它的基础上,写个页面轮播。
写久了就会发现有些插件可以更加抽象化,这时候我就会再重新整体类似于类继承的结构,重新再写一版。
因为是做练习用,个人认为重构一些代码有利于更深刻的学习吧。


初学者是按照这个流程写的,但是在这种思维下很难写出复杂的项目,多变量处理。

【热门文章】
【热门文章】