1、了解面向对象

面向对象 英文Object Oriented,缩写OO首先,我们要明确,面向对象不是语法,是一个思想,是一种 **编程模式**面向对象是一种软件开发方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的灵活性、重用性和扩展性。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物,是一种高级的编程思想。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

2、面向过程与面向对象

面向: 面(脸),向(朝着)面向过程: 脸朝着过程 =》 关注着过程的编程模式面向对象: 脸朝着对象 =》 关注着对象的编程模式在面向过程的时候,我们自己想要什么东西、实现什么目的,都是自己买材料、打磨、制作。。。。在面向对象的时候,我们自己想要什么东西、实现什么目的,自己找一个工厂来帮你完成。实现一个效果我们来举个例子: 我要车面向过程买材料买部件怎么组装需要什么机器搭配组装上色完成面向对象找到一个工厂选一辆车完成面向对象就是对面向过程的封装我们以前的编程思想是,每一个功能,都按照需求一步一步的逐步完成我们以后的编程思想是,每一个功能,都先创造一个 工厂,这个 工厂 能帮我们作出一个 车(完成这个功能的对象),然后用 工厂 创造出一个 车,我们只要等到结果就好了
面向对象与面向过程的区别

假如我们要实现一个盒子的颜色改变,以下就是面向对象与面向过程的实现方式。

<style>div{width: 150px;height: 100px;background: red;margin-top: 20px;}</style>
</head>
<body><button id="btn">按钮</button><div id="box"></div><script>//实现点击按钮改变div的样式//1.面向过程写法//实现颜色改变// var divs = document.getElementById('box');// var btn = document.getElementById('btn');// btn.onclick = function(){//     box.style.color = 'blue';// }// 2.面向对象写法// 实现颜色改变// ChangeStyle是构造函数function ChangeStyle(btn,box,color){this.btn=document.getElementById("btn");this.box=document.getElementById("box");this.color = color;}//再原型中创建点击事件ChangeStyle.prototype.min = function() {var _this = this;    // 此处必须转存this,因为在function中this表示该点击事件的对象   this.btn.onclick=function() {_this.box.style.backgroundColor=_this.color;}}//实例化对象var _this = new ChangeStyle("btn", "div", "blue");_this.min();</script>

不要觉得面向对象写法麻烦,它是一个可以重复调用的函数,就是说不管几个只要调用传参就可以了,而不需要重复的去写。

3、面向对象的特征

面向对象的特征:封装、继承、多态、抽象封装:封装是对象和类概念的主要特性。封装就是把过程和数据包围起来,对数据的访问只能通过已定义的界面。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。继承:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容(这里我们用现实中通俗的说法就是子承父业)。多态:多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性,java引入多态的概念原因之一就是弥补类的单继承带来的功能不足(比如说子承父业,自己不喜欢这份家业然后自己再去创业)。抽象:抽象是指我们所需要的那部分提取出来,只提取我们所要用到的那部分。(用程序代码表示,抽象出来的一般叫做类或者接口)在系统开发中,使用抽象可以尽可能避免过早考虑一些细节。

4、类与对象

类描述了一组有相同特性和相同行为的对象,具有相同属性和相同方法的对象的抽象就是类。类的实例是对象对象把数据及对数据的操作方法放在一起,作为一个相互依存的整体。对象的抽象是类类与对象的关系:模板  ->  产品例如:类 ——>手机     对象——>我的手机类就是包含了所有种类的手机,而我的手机就是一个对象、一个型号,众多种类中
的一个

js面向对象怎么理解相关推荐

  1. 对js面向对象的理解

    转自:http://www.cnblogs.com/jingwhale/p/4678656.html js面向对象理解 ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP ...

  2. 对于js面向对象的理解

    面向对象:oop(这是一种编程思想) es5中 定义方式: 1. function 类名称() {} ==>new 类名称 (这样衍生出来的对象称为类的实例) 2. {} 3. Object 面 ...

  3. 简单粗暴地理解js原型链–js面向对象编程

    简单粗暴地理解js原型链–js面向对象编程 作者:茄果 链接:http://www.cnblogs.com/qieguo/archive/2016/05/03/5451626.html 原型链理解起来 ...

  4. Js面向对象的程序设计——理解对象

    Js面向对象的程序设计 Js面向对象的程序设计 理解对象 属性类型 Js面向对象的程序设计 理解对象 示例 : var person=new Object(); person.name="N ...

  5. JavaScript – 6.JS面向对象基础(*) + 7.Array对象 + 8.JS中的Dictionary + 9.数组、for及其他...

    6.JS面向对象基础(*) 7.Array对象 7.1 练习:求一个数组中的最大值.定义成函数. 7.2 练习:将一个字符串数组输出为|分割的形式,比如"刘在石|金钟国|李光洙|HAHA|宋 ...

  6. JS面向对象一:MVC的面向对象封装

    JS面向对象一:MVC的面向对象封装 MDNjavascript面向对象 面向对象(Object-Oriented) 面向对象里面向的意思是以...为主,面向对象编程既以对象为主的编程. 面向对象的一 ...

  7. JS面向对象,创建,继承

    很开心,最近收获了很多知识,而且发现很多东西,以前理解的都是错的,或者是肤浅的,还以为自己真的就get到了精髓,也很抱歉会影响一些人往错误的道路上走,不过这也告诉了我们,看任何一篇文章都不能盲目的去相 ...

  8. JS面向对象的程序设计之继承-继承的实现-借用构造函数

    JS面向对象的程序设计之继承-继承的实现-借用构造函数 前言:最近在细读Javascript高级程序设计,对于我而言,中文版,书中很多地方翻译的差强人意,所以用自己所理解的,尝试解读下.如有纰漏或错误 ...

  9. JS面向对象(仿邮箱登录提示框)

    最近在好好的研究JS,通过一个仿邮箱登录提示框的案例加深下对面向对象的理解!啥都别说,先上图: 功能:实现正则匹配显示相符的内容.键盘事件.鼠标事件 简单布局: <div id="lo ...

最新文章

  1. python sort函数返回值_lambda函数与箭头函数在集合内置函数应用中的对照学习
  2. VS2010-2015对C++11/14/17特性的支持
  3. python-os模块
  4. (数据结构与算法)插入排序和希尔排序
  5. Halcon:区域特征:select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : )
  6. matlab输出lccde_Matlab与Visual C++混合编程处理全站仪数据的方法
  7. 【渝粤教育】国家开放大学2018年秋季 1131t卫生经济学 参考试题
  8. java证明角谷猜想_Java 代码界 3% 的王者?看我是如何解错这 5 道题的
  9. 使用u盘+iso装纯净系统的基本步骤。
  10. 电力拖动自动控制系统_专插本专业全面分析:电子工程及其自动化
  11. win10释放C盘空间(清理C盘)
  12. 斐波那契数列 一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?
  13. 机器学习:02 特征工程和决策树回归
  14. 好汉歌计算机音乐,好汉歌歌曲赏析
  15. 会声会影应该如何制作电影开幕效果
  16. matlab向excel连续写数据,每次换行
  17. 微信小程序 input 的 type属性 text、number、idcard、digit 区别
  18. 在pycharm中直接安装第三方包时出错提示无合适版本---解决方案
  19. 用python画国旗的程序_用python画的五星红旗
  20. 创建cocos2dx项目

热门文章

  1. navicat中导出数据表结构为word格式
  2. React项目前端开发总结
  3. 返利网PHP面试_【返利网PHP面试】面试不算难 但是公司的办事奇怪-看准网
  4. n阶方阵求逆c语言报告,n阶方阵求逆
  5. lamp 架构的搭建
  6. 有些爱意,在岁月中飘遥
  7. 等离子体化学反应类型总结
  8. xp如何配置信息服务器地址,xp如何配置信息服务器地址
  9. 大理石在哪儿_创建大理石样式CSS3导航菜单
  10. php自动适应屏幕大小,如何解决js获取屏幕大小并且让图片自适应的方法