其实本不打算写设计模式的文章
一来觉得自己没有足够的实力来写好设计模式,二来觉得这个包含了很多内容有很多自己也没有实际用到过,光说不练假把式怕自己变成ppt工程师T.T
但是查找了很多资料,也确确实实理解了,但是怕自己记不住哇,毕竟我金鱼的记忆力,所以还是决定把这些内容记录写下来,好记性不如烂笔头,也方便自己日后查阅。
正文:
其实“设计模式”这个词看起来高大上,检索一下可以得到模式其实已经验证了的解决方案,容易被复用,富有表达力的名称
“设计模式是解决软件设计常见问题的可复用方案” ——-《JavaScript设计模式》
说这么多,别怕,就像之前文章中把“路由”解释为“找路”一样,模式就是“套路”啦,相信我,认真看完这篇文章,你会对这些经典的设计模式都有所掌握。
#### 反模式
在开始设计模式之前提一下反模式,,从名字来看就是知道了,就是和好的模式反着来的,知道了一些反模式,当然就可以避开这个坑。
比如:
1. 定义大量全局变量,造成命名污染
2. 修改Object类的原型
3. 使用document.write创建页面
(文档在加载的过程中实际上就是一边加载一边用document.write写出内容到屏幕上,而一旦加载完成这个写入流就会被关闭。此时如果你再调用document.write往网页上写入内容的话他会先把已经写入的内容全部清空然后再重新打开写入流用以写入你写入的内容。
通俗来讲就是一旦网页加载完成你再调用document.write那么原有的网页内容都将消失不见最后只剩下你调用该函数写入的内容。)
4. 写死功能,数值等
5. 向setTimeout传递字符串(会导致内部触发 eval() 的使用。eval() 方法会造成性能问题和可能会引起安全性的问题。)
6. .....
反正呢,就是反人类的模式,哈哈哈,所以开发的时候要避雷
#### 单例模式
待续,先去吃饭。
- 以专业工程师的标准要求自己
- JS
- 函数的this
- 函数的argument
- 函数的apply、bind、call方法
- 创建对象
- 构造函数创建对象
- 原型结合构造函数创建对象
- 原型
- 继承
- 闭包
- 正则表达式
- Ajax
- 设计模式
- ES6
- es6的模块化
- 定义变量的新方式
- 函数扩展
- 数组扩展
- 性能与工程化
- 关于http与缓存
- 重排(reflow、layout)与重绘
- 页面性能
- gulp
- webpack
- 一些项目回顾总结
- 移动端&微信H5游戏
- 微信小程序
- Vue.js
- 随手记录
- 如何通过前端技能获取2018世界杯门票
- jsonp
- es6 javascript对象方法Object.assign()
- 一份不错的基础面试题
- vscode常用插件
- koroFileHeader
- 构建自己的Js工具库
- H5 game
- Phaser从入坑到放弃再入坑
- 1.游戏的创建
- 2.资源的加载
- 3.phaser中的舞台,世界和摄像机
- 4.游戏缩放控制,移动端的适配
- 5.phaser中的显示对象
- 1.概述
- 2.phaser中的图片,图形,和按钮
- 3.phaser中的精灵
- 4.文字
- 5.组
- 6.phaser中的动画
- 7.粒子和瓦片地图
- 8.瓦片地图
- lodash
- ES5 to ESNext — here’s every feature added to JavaScript since 2015
- 防抖(debounce) 和 节流(throttling)