对于编程的一些小伙伴在编程的时候,会发现许多的代码,代码的重复度非常的高,所以对于代码的精简,封装这词应运而生,对于封装,常常使用的就是对功能的封装,封装成一个函数,但是对于一个封装函数的巧用应该是我们应该考虑的,而不只是单单封装一个私有,片面的,功能局限的一个函数,对于一个变量他拥有许多属性方法,那么我们如何直接定义一个对象变量更加的方便呐,我们时常把相同的部分聚合一起,那么对于高耦合,低内聚我们应该理解那些概念呐。下面是我的一些理解:
第一:封装函数应该活起来
怎么理解活这个词,首先,我们应该想到的是灵活的,多变,那么在函数运用之中怎么使函数活起来呐?那么常见的这种函数有哪些呐?
一般我把这种函数分为两类:
1.功能函数
对于功能一词我把理解为什么东西,做什么事,对于一些事就是所谓的功能,但是是谁做这就是功能函数的活。对于谁调用函数,那么这个函数的所有者就是谁,函数内部可以使用调用者的某些信息,而对于功能函数的能力也并不是某个单一调用者拥有的技能,所以对于函数之中的this则是可以使函数活起来的关键,我们知道this代指调用者本身,调用本省的东西只需要一点,非常的好用,所以在封装功能函数的时候,我们可以使用this,而不直接使用变量,因为this是广泛的,而变量是片面的。
2.调用函数
我们常常封装函数,调用函数,而才开始的我们因为代码冗杂太高,往往只因为一两个变量的不同,常常会直接粘贴复制,然后修改不同的变量,但是往往同时会使我们的代码冗杂,导致在阅读的时候会不易观看,往往就是一个功能明明我只需要调用的时候才会展现出来,但是我们就直接在脸上写满了我可以干什么,明明我们只需要在一个册子上写满我的优点就行了,所以对于这种我们需要重复利用的东西,往往函数封装,而我们只用只需要调用,关于调用函数,如何让他灵活起来,如何在封装的时候,让他可变,我们需要用到的就是函数的形式参数,虽然对于一个封装函数,其内部有augument伪数组可以调用实际参数,但是在实际中的开发中并不好用,不易阅读和理解一个函数的功能,所以在我们封装一个函数的时候,往往会使用形式参数。而且非常好用。
对于函数的运用,首先我们应该明白他应该干什么,具备哪些功能,需要哪些信息,才能顺利使你完成这些功能,所以我们就应该想到,如何获取这些信息,就如上文所述,对于一个函数的调用者,往往就我们需要获取的信息,所以this在函数里面的运用非常重要,第二就是形式参数,形式参数可以作为一个未知变量在函数里面使用,但是我们应该知道,形式参数是什么,我们拿他来做什么,这就是函数的高内聚,其实无非就是一点,调用者和调用函数之间的交互,有许多的调用者,而调用者之间不同的信息就应该作为一个标志作为交互的内容。
第二:事件委托
我们常常在进行dom操作的时候(不用虚拟dom的情况下),常常会给许多的dom元素添加事件,但是往往在这些dom元素操作之中,往往在他们变化的同时,时常会有许多的元素会跟着变,例如在淘宝购物车的时候,我们在结算页面选择商品的时候,或则是改变商品数量的时候,总价会跟着我们选择的商品数量及种类的变化跟着变化。所以事件委托在这类情况下非常好用。
在使用时间委托的时候,我们会减少获取dom的操作,减少损耗的同时,我们也节俭了许多的代码。在许多变量之中节俭了许多,之前我们需要获取到每个元素,现在我们只需要获取到他们的父元素,通过事件对象的方式,对子元素进行操作。
我们操作dom对象时,时常也回调用许多相同的函数,所以,事件委托可以使我们精简代码,使代码分层,模块化。
但是在代码编写过程中往往会出现一种循序渐进的过程,所以对于功能的实现,还是对于代码的一些封装,我们所需要的还是一步一路,锻炼我们对于功能的敏感度,如何实现一个代码多处使用,在实现的过程中我们走的路必定曲折,但是慢慢修正才是真正应该度过的代码人生,如果说一个功能在你并不了解他时,一次性的实现了,那么你下次必定不了解他,所以编程之路,还得靠跌跌撞撞,没有谁的代码可以一劳永逸,所谓低耦合高内聚,还得靠慢慢提炼,理解掌握。