其實本不打算寫設計模式的文章
一來覺得自己沒有足夠的實力來寫好設計模式,二來覺得這個包含了很多內容有很多自己也沒有實際用到過,光說不練假把式怕自己變成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)