1、使用面向对象的方式来做这个案例---注意:面向对象是面向过程的封装,不是完全替代了面向过程

  

案例一:随机生成小方块

  思考:1、这个案例里可以抽象出哪些对象---方块对象

     2、随机生成颜色、随机生成位置 ---生成随机数--封装成函数,封装成函数比较散,为了方便管理,把不同功能的函数封装在不同对象的方法中-----工具对象

    所以这个项目会有2个对象

    方块对象  +  工具对象  (封装很多功能函数)

    方块对象有很多,这些对象都很类似,所以我们可以通过构造函数的方式来创建对象:批量创建相似类型的对象。

    工具对象在整个项目中只有一个,所以直接用创建普通对象的方式来创建工具对象就行。

    代码实现:

    1、创建工具对象---对象的方法来封装些功能(生成随机数)

    2、创建方块对象

      a、创建构造函数

      b、分析方块对象的成员---即构造函数的属性、方法(无对错,只有合适不合适):

        属性:方块的背景颜色、方块的大小、方块的坐标、

        方法:随机生成自己的坐标

     

     

       

     3、随机生成方块的调用---实现随机生成方块

      

      

案例二:贪吃蛇游戏

     

   第一步:看哪些可以抽象成对象(物、事都可以抽象成对象)

        蛇  +  食物 (物) 、 游戏对象(事)控制游戏的逻辑

   第二步:创建对象(构造函数  、对象成员)

    先写最简单的对象

    a、食物: 有哪些成员  ---(属性) 坐标   大小   颜色  +   (方法)随机创建一个食物对象,并显示在界面上

    

    随机生成食物的坐标的x、y的范围

      

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

      

       把之前写的代码都放在一个自调用函数中,避免全局污染

      

    b、蛇对象

      

      

       

    c、游戏对象

    

    

    

    

    

    

3、贪吃蛇游戏的优化

  

   

    合并js文件:每一个文件访问的时候都会建立一个连接,这样我们的访问网页的速度也会变慢,我们最后上线的时候打包合成一个js文件,这样可以提高网页的访问速度

    压缩(文件体积小,下载速度会快些,别人在访问网页时会快些):压缩 注释 、 换行 、 参数变量名------项目开发时一般会有压缩工具的

    

    

4、函数的bind

     

5、自调用函数的问题

    

    

    

    

 

      

 

        

        

        

      

      

      

转载于:https://www.cnblogs.com/yangyutian/p/10934458.html

js_高级_面向对象编程案例---理解面向对象编程思想很重要相关推荐

  1. js_高级_表格排序案例---分别用面向过程和面向对象实现

    点击表单每列的title可以实现排序功能(从大到小,从小到大) 1.面向过程方式   2.面向对象实现 以命令者的角度去考虑自己要这个类有什么功能,封装在类里面后自己可以直接调用 然后再去写功能的具体 ...

  2. arcgispython编程案例_ArcGIS Python编程案例(1)-Python语言基础

    Python支持大部分在其他语言中出现的编程结构.在本章内容中,我们将会涉及到许多Python支持的编程结构.我们将会首先介绍如何创建一个新的Python脚本以及如何修改已有脚本.之后我们将深入了解P ...

  3. arcgis python编程案例-ArcGIS Python编程案例-电子资料链接

    ArcGIS Python编程案例(1)-Python语言基础 https://www.jianshu.com/p/dd90816d019b ArcGIS Python编程案例(2)-使用ArcPy编 ...

  4. js_高级_对象、面向对象、构造函数、实例对象、原型、原型链

    1.什么是对象 汽车不是对象是是一类事物,一辆汽车是对象. 2.什么是面向对象 3.面向对象的特点 案例来理解  面向过程 和 面向对象---打印出学生的成绩表 面向过程:如何做这件事情 ,把事情拆成 ...

  5. python网络编程案例_Python 网络编程_python网络编程基础_python高级编程

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

  6. c++中recvfrom函数_通俗易懂:快速理解网络编程中5种IO模型

    关于IO模型,就必须先谈到几个日常接触的几个与IO相关名字:同步,异步,阻塞,非阻塞. 名词解释 同步 如果事件A需要等待事件B的完成才能完成,这种串行执行机制可以说是同步的,这是一种可靠的任务序列, ...

  7. 计算机编程术语理解,计算机编程常用术语中英对照

    计算机编程常用术语中英对照 A A -Z Zﻫ 目录 计算机编程常用术语 A-Z A 误错ﻩ 错误! 未定义书签. B 7 ﻩC 误错ﻩ 错误! 未定义书签. D .................. ...

  8. python网络编程案例_python网络编程实例简析

    本文实例讲述了python网络编程,分享给大家供大家参考. 具体方法如下: 服务端代码如下: from SocketServer import(TCPServer as TCP, StreamRequ ...

  9. 【Scratch案例实操】scratch星际迷航 scratch编程案例教学 少儿编程教案

    scratch星际迷航 案例介绍 宇宙空间的探索是我们国家一直以来都在努力发展的科学前言,我们已经能够实现将宇航员送往外太空进行科考工作,同时考查完毕之后可以将宇航员顺利的带回地球,我们今天这个案例就 ...

最新文章

  1. 零基础学习Python需要注意的几个点,Python培训机构排名
  2. 程序员单身比例有多高?【2019开发者图鉴】告诉你
  3. HDU 5734 Acperience
  4. IOS 获取缓存目录文件大小并清除
  5. USACO3.15stamps(dp)
  6. PC端动态视频背景引导页(非自适应)
  7. 基于Android官方Paging Library的RecyclerView分页加载框架
  8. 使用SQL语句操作数据
  9. 90后告别第一份工作后,更青睐新一线城市开启职场第二步
  10. 肯德基champs各个字母代表什么_百度知道
  11. 2016年的题目总结
  12. 解除极域电子教室软件控屏的方法
  13. MyBatis缓存机制详解
  14. JUCE复杂的命名空间的替代方法
  15. Pr入门系列之三:新建序列
  16. StoryBoard的基本使用方法
  17. 重磅:国家基金委八大学部公布“优先发展领域及主要研究方向”
  18. dBm、mw、dB三者之间的关系
  19. 萤光云香港三区服务器测评
  20. CAD关于图层隐藏图层操作(com接口c#语言)

热门文章

  1. 以下用于数据存储领域的python第三方库是-python第三方库系列之一--json
  2. python syntaxerror怎么解决-python中出现invalid syntax报错的几种原因
  3. python工程师薪资坑吗-python能到什么程度
  4. python好学吗 老程序员-为什么会有程序员不喜欢 Python?
  5. python 朗读-Python 文本转语音
  6. python基础语法有哪些-Python基础语法一
  7. vscode中调试react
  8. mysql 变量赋值方法
  9. Java中合成与继承的选择
  10. qt中对任务繁忙时QProgressDialog的使用