• 第6章 面向对象 导论(javascript的面向对象)


    javascript的面向对象

    JavaScript设计之初没有面向对象的功能设计。只有借助对象数据类型来模拟面向对象。

    如何使用对象这个数据类型来达到面向对象的封装,继承和多态的效果呢?

    面向对象的理解

    创建对象

    前面已经介绍到,创建对象就是设计绘制积木零件的图纸
    在这里插入图片描述
    如图,要制作这些动物:按照零件的图纸制造零件,然后组装。
    要编写完成某功能的程序:就是按照类的图纸,制造(实例化)一个对象,然后在主代码中调用组装。

    那么这些零件图纸的设计要说明什么,就可以类比class(类)要怎么描述。
    在这里插入图片描述
    主要描述有:
    齿轮{
    型号:QSn6.5-0.1
    材质:钢
    直径:12.2
    齿数:24
    倾斜度:10°
    功能:传动
    在这里插入图片描述
    }

    如此这般,每一种齿轮都要重新做一张图,如此设计图纸太费事。

    上面这个方案对应到Javascript的面向对象定义时,对应的就是字面量创建对象

    能不能找个图纸打印机,只要输入几个主要参数,就自己打印出齿轮图纸来

    这个方案对应到Javascript的面向对象定义时,对应的就是工厂模式创建对象

    打印出齿轮图纸虽然解决了创建多个相似齿轮的问题,但却没有解决齿轮是哪一类齿轮的问题。(工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题。) 如何解决呢?
    在这里插入图片描述在这里插入图片描述
    如何分类的打印出齿轮图纸?

    你要提前建一个数据库分门别类的保存好每种型号零件的图纸,只要你输入(new 某某齿轮)新建某某齿轮,齿轮的图纸就调出来。

    这个方案对应到Javascript的面向对象定义时,对应的就是构造函数模式创建对象

    当零件图纸越来越多时候,存储记忆太难,如果能把某一类产品的图纸,相同部分只存一份,不同部分每个单独存,同时指出其他相同部分是那张图纸。

    在这里插入图片描述

    相同部分存的那一份,也就是齿轮模板,我们起个名字叫“原型”

    这个方案对应到Javascript的面向对象定义时,对应的就是原型模式创建对象

    这种原型方式,也有自己的问题,上图中下面的四个齿轮图纸,不用画,只存个颜色,齿轮样子指向原型图(上面那个黑色的齿轮图)。如果红色齿轮由于要求对齿轮的齿数做了重新修改,那就会保存到原型图中,其他颜色齿轮的图纸都会对齿数变动。

    这个如何解决?

    用构造函数和原型模式结合使用

    这个方案对应到Javascript的面向对象定义时,对应的就是组合使用构造函数模式和原型模式创建对象

    不变的部分存在模板中(原型)
    可能变化的存在构造函数中

    对象继承

    也就是图纸的继承

    在这里插入图片描述

    您的浏览器不支持 HTML5 canvas 标签。
  • 相关阅读:
    Mithril – 构建杰出 Web 应用的 JS MVC 框架
    构建 iOS 风格移动 Web 应用程序的8款开发框架
    优秀设计:纹理在网页设计中的20个应用示例
    HTML5 Dashboard – 那些让你激动的 Web 技术
    免费下载!10套流行的扁平化界面设计素材
    另类网页设计:30个复古怀旧风格的网站作品
    2014年3月新鲜出炉的最佳 JavaScript 工具库
    25个最佳的 WordPress Gallery 画廊插件
    Gremlins.js – 模拟用户随机操作的 JS 测试库
    15款提高工作效率的 Web 项目管理工具
  • 原文地址:https://www.cnblogs.com/szmtjs10/p/16110372.html
Copyright © 2020-2023  润新知