思路:
选择引擎
DOM操作模块(增删)
事件模块click,on,…
属性模块attr,text,html,val…
样式模块css,hasClass…
动画模块
整合
做个小例子:
页面有一堆div和p,给它们加上背景色
|
|
这么做有什么不好的地方?
- 代码冗余
- 丑
- 无法复用
- 容错
- 效率
- 性能
函数化
所以我们考虑给它函数化
|
|
显然each这个函数写的太死
我们思考一下:如果你想要遍历一个数组,要对数组做什么事情?
凡是涉及到遍历才可以完成的事情都应该可以做(修改,查询)
|
|
|
|
发现
我们可以发现,遍历操作有一个特点:所有都需要循环,就是循化体不同。
那么我们来优化一下each
|
|
|
|
|
|
我们来求个和试试
|
|
再来求个最大值试试
|
|
是不是完美了呢?不,如果我们求下标为偶数的和呢?没办法了吧,所以我们还需要把下标i传进去。
|
|
|
|
完美了吗?不,如果要查找怎么办呢?没有break,那么会循环整个数组,性能低,并且,如果有相同的,后面的会把前面的覆盖掉。
|
|
我们还不满足
|
|
可以这么做
|
|
好了,我们再来写前面的例子
|
|
本文结束,感谢阅读。
本文作者:melody0z
本文链接:https://melodyvoid/JavaScript/framework-design.html
欢迎转载,转载请注明文本链接