实现某项功能函数的封装

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

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

阅读 3.1k
5 个回答

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

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

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

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

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

新手上路,请多包涵

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题