Javascript面向对象编程(一)
什么是面向对象?
它是一种新的编程模式。以往的面向过程是将功能都写在一起,逐行实现。面向对象与其不同,它只关心对象提供的功能,而不在乎细节。
面向对象的特点?
抽象:抓住问题的核心,贯穿始终;
封装:不考虑内部实现,只考虑功能;
继承:从已经有的对象上,继承出新的对象。
原始的生成实例对象?

从这个实例中可以看出两点问题:一是如果多生成几个实例的话,就会写的特别麻烦造成了代码的冗余;二是两个实例之间并没有产生一些联系。
通过构造函数改造下?

经过改造是否发现无论需要多少实例只要new一下就可以,比改进之前真的方便很多。
构造函数和对象之间的关系?
面向对象------------------------对一个对象进行编程
构造函数------------------------提供一个对象让你编程
通过构造函数实现面向对象编程
如果在构造函数内部添加方法呢?

我们可以发现在构造函数内部添加一个show方法后,输出的都是统一格式。如果people1并不想有show方法怎么办?如果people1不想跟people2输出的格式一样又怎么办呢?这个时候构造函数的prototype属性就发挥作用了。它可以使方法在内存中只生成一次,使所有实例都指向那个内存地址。这样既环保也提高了效率。
原型的概念是什么?
首先声明两点:其一,在函数中两个新建的函数是不相等的。

其二,在构造函数中,两个新的函数也是不相等的。

此时可以看出构造函数的多次创建会产生多个同名函数,造成冗余太多。
让我们用原型来解决一吧!


输出结果:
Javascript面向对象编程(一)的更多相关文章
- JavaScript面向对象编程学习笔记
1 Javascript 面向对象编程 所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例 ...
- 快速学习JavaScript面向对象编程
到处都是属性.方法,代码极其难懂,天哪,我的程序员,你究竟在做什么?仔细看看这篇指南,让我们一起写出优雅的面向对象的JavaScript代码吧! 作为一个开发者,能否写出优雅的代码对于你的职业生涯至关 ...
- 深入理解Javascript面向对象编程
深入理解Javascript面向对象编程 阅读目录 一:理解构造函数原型(prototype)机制 二:理解原型域链的概念 三:理解原型继承机制 四:理解使用类继承(继承的更好的方案) 五:建议使用封 ...
- 【转】Javascript 面向对象编程(一):封装
原文链接:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html Javascript ...
- Javascript 面向对象编程(一):封装 by 阮一峰
<Javascript高级程序设计(第二版)>(Professional JavaScript for Web Developers, 2nd Edition) 它们都是非常优秀的Java ...
- 转:javascript面向对象编程
作者: 阮一峰 日期: 2010年5月17日 学习Javascript,最难的地方是什么? 我觉得,Object(对象)最难.因为Javascript的Object模型很独特,和其他语言都不一样,初学 ...
- 探讨javascript面向对象编程
(个人blog迁移文章.) 前言: 下面将探讨javascript面向对象编程的知识. 请不要刻意把javascript想成面向对象编程是理所当然的. javascript里面,对象思想不可少,但是不 ...
- JavaScript面向对象编程(一)原型与继承
原型(prototype) JavaScript是通过原型(prototype)进行对象之间的继承.当一个对象A继承自另外一个对象B后,A就拥有了B中定义的属性,而B就成为了A的原型.JavaScri ...
- JavaScript面向对象编程(二)构造函数和类
new关键字和构造函数 在文章JavaScript面向对象编程(一)原型与继承中讨论啦JavaScript中原型的概念,并且提到了new关键字和构造函数.利用new关键字构造对象的实例代码如下: // ...
- JavaScript 面向对象编程(三)如何写类和子类
在JavaScript面向对象编程(一)原型与继承和JavaScript面向对象编程(二)构造函数和类中,我们分别讨论了JavaScript中面向对象的原型和类的概念.基于这两点理论,本篇文章用一个简 ...
随机推荐
- Ubuntu 下超简单的安装指定版本的nodejs
第一步 指定版本源 执行 curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - setup_5.x 需要安装的版本号,替换数字就 ...
- hello1 hello2 代码分析
1.hello1代码分析 hello.java package javaeetutorial.hello1; import javax.enterprise.context.RequestScoped ...
- Excel常用公式
转载请注明来源"ExcelHome"并保留原文链接.固定链接:http://www.excelhome.net/lesson/article/excel/1897.html 1.I ...
- 找出n之内的完全数, 并输出其因子
定义: 完全数:所有的真因子(即除了自身以外的约数)的和,恰好等于它本身.例如:第一个完全数是6,它有约数1.2.3.6,除去它本身6外,其余3个数相加,1+2+3=6.第二个完全数是28,它有约数1 ...
- vue原生table合并单元格并可编辑
<template> <div> <div class="el-card box-card table_container"> <div ...
- 记录一次Struts s2-045重大安全漏洞修复过程
[升级修复] 受影响用户可升级版本至Apache Struts 2.3.32 或 Apache Struts 2..5.10.1以消除漏洞影响. 官方公告:https://cwiki..apache. ...
- Taro 常用 API
table th:first-of-type { width: 300px; } Taro 常用 API 说明 网址 Taro.getSystemInfoSync() 获取系统信息同步接口. http ...
- JavaScript 版本的 RSA加密库文件
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- Oracle数据csv导入
打开工具,在tool下面有个Text Importer 先选择Data from textfile选项卡 然后选择 Open data file ,打开要导入的文件 1\ 2\ 再先选择Data to ...
- 【转】META标签指南:哪些meta标签该用哪些不该用?
以下内容来源:http://lusongsong.com/reed/8766.html META标签是网页代码中HEAD区的一个关键标签,其提供的信息虽然用户不可见,但却是文档的最基本的元信息.说起m ...