前端开发:面向对象与javascript中的面向对象实现(一)

前言:

人生在世,这找不到对象是万万不行的。咱们生活中,找不到对象要挨骂,代码里也一样。朋友问我说:“嘿,在干嘛呢......”,我:“找不到对象!”,他:“就你那样也能找得到对象?”。我一脸黑线......

废话不多说,今天博主要跟大家聊的是《面向对象与javascript中的面向对象实现》”。

面向对象理解:

  面向对象是一种对现实世界理解和抽象的方法,是一种先进的程序设计理念,是一种比较抽象的,多形态的设计模式。我们可以这么理解:“万物皆对象”,我面向了它,即“面向对象”。例如,面前有一台电视机,深入剖析,这个电视机具有哪些特性?

①  它是开着的或者是关着的;

②  它有几个按钮,包括(开关键、音量键、上一个节目、下一个节目);

③  有一个机顶盒用来接收数据

  类的概念

  现在,我们把电视看成一个对象,它的抽象化就是,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,也就是说,类==对象==实例

  类的方法

    类有很多个方法,现在我们可以把电视机看成一个类,它现在有哪些方法呢? 开关、音量、节目;这是它的方法,就是类的方法;我们不需要去关心按下开关电视经历了什么样的开机过程,我们只需要知道,我按下了开关,它就会开启。

  私有与公共

  可以被用户访问到的方法叫做公共方法,而那些只可以被类访问的方法叫做私有方法,没错,就是数据,电视机在接收电视台的信息的时候,我们是不能控制的,它在内部调用了一个方法。哦~我们按下了开关这个方法,然后开关这个方法调用了一个私有的接收信息方法,然后电视就被另一个私有方法(显示在屏幕上)显示出来了。

  继承

  现在,我觉得我的电视机屏幕显示效果太烂,行,换个新的。在换上的时候,我们可以说,哦~现在电视机又多了一个显示器,拥有了这个显示器的所有控制按钮与控制接口(开关,音量等等),那我们就可以认为,电视机继承了这一个新的显示器,它继承了这个显示器的方法,它现在就可以调用这个显示器的显示方法,把电视显示在新的显示器上面。

  一张详解图:

javascript中面向对象实现(1):

  在javascript中实现面向对象没有其他oo语言那样简便,因为它并没有直接规定class标识等等,要实现它有很多种方法,博主暂且举一个最常见的栗子,其它的篇幅过长,我们在下一章一一详解:

  1. //创建自定义数据格式
  2.  
  3. function DianZan(){
  4. //构造函数
  5. }
  6. DianZan.prototype = {
  7. //给类添加方法
  8. dianzan:function(){
  9. alert("给博主点一个赞");
  10. },
  11. budianzan:function(){
  12. alert("狠心拒绝");
  13. }
  14. }
  15.  
  16. var dianzan = new DianZan(); //创建了一个实例(类)
  17.  
  18. dianzan.dianzan(); //调用方法点赞

首先,我们创建了一个构造函数,然后给构造函数的原型添加了两个方法,最后,创建一个dianzan示例(类),然后调用点赞方法;  结合上面的逻辑,你看懂了吗?

总结:

  下一章我们继续深入理解javascript中的面向对象,它远没有想象中的那么复杂。弄清楚里面的原理,我想对大家来说都是一件非常有意义的事情。

---------------------------------------时间不曾停下它的脚步,你又怎么可以止步不前---------------------------------------

我的微信号:    qq:

 欢迎各种技术讨论,如果您有建站需求,欢迎联系;

 (转载请注明出处)

前端开发:面向对象与javascript中的面向对象实现(一)的更多相关文章

  1. 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型

    前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...

  2. 前端开发:javascript中的面向对象

    前端开发:面向对象与javascript中的面向对象实现(一) 面向对象理解: 面向对象是一种对现实世界理解和抽象的方法,是一种先进的程序设计理念,是一种比较抽象的,多形态的设计模式.我们可以这么理解 ...

  3. 简单分析JavaScript中的面向对象

    初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...

  4. JavaScript从初见到热恋之深度讨论JavaScript中的面向对象。

    JavaScript中的面向对象.面向对象的三个基本特征:封装.继承.多态. 1.封装 js的封装如下 定义Person类 function Person(name,age,sex) { this.n ...

  5. 如何理解并学习javascript中的面向对象(OOP) [转]

    如果你想让你的javascript代码变得更加优美,性能更加卓越.或者,你想像jQuery的作者一样,写出属于自己优秀的类库(哪怕是基于 jquery的插件).那么,你请务必要学习javascript ...

  6. 【转载】【游戏开发】在Lua中实现面向对象特性——模拟类、继承、多态

    [游戏开发]在Lua中实现面向对象特性——模拟类.继承.多态   阅读目录 一.简介 二.前提知识 三.Lua中实现类.继承.多态 四.总结 回到顶部 一.简介 Lua是一门非常强大.非常灵活的脚本语 ...

  7. 前端学习 第二弹: JavaScript中的一些函数与对象(1)

    前端学习 第二弹: JavaScript中的一些函数与对象(1) 1.apply与call函数 每个函数都包含两个非继承而来的方法:apply()和call(). 他们的用途相同,都是在特定的作用域中 ...

  8. 面向对象在JavaScript中的接口实现

    接口是面向对象编程的基础.它是一组包括了函数型方法的数据结构,与类一样.都是编程语言中比較抽象的概念.比方生活中的接口.机顶盒.人们利用它来实现收看不同频道和信号的节目,它宛如对不同类型的信息进行集合 ...

  9. JavaScript中的面向对象的讨论(转)

    前言 今天,WEB2.0时代的到来,给了JavaScript又一次大展身手的机会.Web2.0借助JavaScript技术,使得客户端的Web体验更加丰富多彩,同时JavaScript面对的问题域也变 ...

随机推荐

  1. 实现一个类 RequireJS 的模块加载器 (二)

    2017 新年好 ! 新年第一天对我来说真是悲伤 ,早上兴冲冲地爬起来背着书包跑去实验室,结果今天大家都休息 .回宿舍的时候发现书包湿了,原来盒子装的牛奶盖子松了,泼了一书包,电脑风扇口和USB口都进 ...

  2. Anders Hejlsberg 技术理想架构开发传奇

    Anders Hejlsberg(安德斯-海森博格) 坐在自己的办公室,双眼直直的盯着前方.他要做一个决定,决定自己未来的命运和理想.这是1996年一个普通的下午,几个小时前,他刚与比尔-盖茨结束了 ...

  3. RabbitMq应用一的补充(RabbitMQ的应用场景)

    直接进入正题. 一.异步处理 场景:发送手机验证码,邮件 传统古老处理方式如下图 这个流程,全部在主线程完成,注册->入库->发送邮件->发送短信,由于都在主线程,所以要等待每一步完 ...

  4. jQuery幻灯片插件autoPic

    原文地址:Jquery自定义幻灯片插件 插件效果图: 演示地址:autoPic项目地址:autoPic 欢迎批评指正!

  5. TFS2013 设置签出独占锁

    转载自: http://www.cnblogs.com/zhang888/p/4280251.html

  6. 项目持续集成环境(jenkins + SVN + maven + tomcat)

    整体流程 每次SVN上代码有变动,触发自动构建动作,并部署到服务器的tomcat上,具体流程: 1.SVN上提交代码修改 2.maven执行Goals 3.将web工程打成war包 4.关闭服务器的t ...

  7. Oracle使用触发器和mysql中使用触发器的比较——学习笔记

    一.触发器 1.触发器在数据库里以独立的对象存储, 2.触发器不需要调用,它由一个事件来触发运行 3.触发器不能接收参数 --触发器的应用 举个例子:校内网.开心网.facebook,当你发一个日志, ...

  8. 驱动01.LED

    1.写出leds_open,leds_write函数2.1告诉内核这几个函数的存在?定义一个结构体file_operations2.2把这个结构体告诉内核?用register_chrdev(major ...

  9. java中判断字符串是否为只包含数字

    1.用Java自带的函数 public static boolean isNumeric(String str){ for(int i=str.length();--i>=0;){ if (!C ...

  10. SVG:linearGradient渐变在直线上失效的问题解决方案

    SVG开发里有个较为少见的问题. 对x1=x2或者y1=y2的直线(line以及path),比如: <path d="M200,10 200,100" stroke=&quo ...