1、使用面向對象的方式來做這個案例---注意:面向對象是面向過程的封裝,不是完全替代了面向過程

案例一:隨機生成小方塊
思考:1、這個案例里可以抽象出哪些對象---方塊對象
2、隨機生成顏色、隨機生成位置 ---生成隨機數--封裝成函數,封裝成函數比較散,為了方便管理,把不同功能的函數封裝在不同對象的方法中-----工具對象
所以這個項目會有2個對象
方塊對象 + 工具對象 (封裝很多功能函數)
方塊對象有很多,這些對象都很類似,所以我們可以通過構造函數的方式來創建對象:批量創建相似類型的對象。
工具對象在整個項目中只有一個,所以直接用創建普通對象的方式來創建工具對象就行。
代碼實現:
1、創建工具對象---對象的方法來封裝些功能(生成隨機數)
2、創建方塊對象
a、創建構造函數
b、分析方塊對象的成員---即構造函數的屬性、方法(無對錯,只有合適不合適):
屬性:方塊的背景顏色、方塊的大小、方塊的坐標、
方法:隨機生成自己的坐標





3、隨機生成方塊的調用---實現隨機生成方塊




案例二:貪吃蛇游戲

第一步:看哪些可以抽象成對象(物、事都可以抽象成對象)
蛇 + 食物 (物) 、 游戲對象(事)控制游戲的邏輯
第二步:創建對象(構造函數 、對象成員)
先寫最簡單的對象
a、食物: 有哪些成員 ---(屬性) 坐標 大小 顏色 + (方法)隨機創建一個食物對象,並顯示在界面上


隨機生成食物的坐標的x、y的范圍

蛇遇到食物之后要刪除食物


把之前寫的代碼都放在一個自調用函數中,避免全局污染


b、蛇對象







c、游戲對象











3、貪吃蛇游戲的優化



合並js文件:每一個文件訪問的時候都會建立一個連接,這樣我們的訪問網頁的速度也會變慢,我們最后上線的時候打包合成一個js文件,這樣可以提高網頁的訪問速度
壓縮(文件體積小,下載速度會快些,別人在訪問網頁時會快些):壓縮 注釋 、 換行 、 參數變量名------項目開發時一般會有壓縮工具的

4、函數的bind


5、自調用函數的問題


