原型继承:

  这种原型继承的特点:既继承了父类的模板,又继承了父类的原型对象。优点是继承了父类的模板,
    又继承了父类的原型对象,缺点就是父类实例传参,不是子类实例化传参,不符合常规语言的写法。

function animal(footnum,eyescolor,feathercolor){ //夫类this.foot = footnum;this.eyes = eyescolor;this.feather = feathercolor;}animal.prototype.eat = function(){alert("eatting");}function bird(){ //子类}bird.prototype = new animal(5,"black","red"); //继承/*
不能使用对象字面量创建原型方法。因为这
样做就会重写原型链 如: bird.prototype ={  fly : function(){    alert('flying');  }}
*/
 bird.prototype.fly=function(){   
   alert('fly');}
var eagle = new bird(); //对象 eagle.eat();

  

 


类继承:

  继承了父类的模板,不继承了父类的原型对象。优点是方便了子类实例传参,
  缺点就是不继承了父类的原型对象

 1 function Person(name,age,tall){
 2   this.name = name;
 3   this.age = age;
 4   this.tall = tall;
 5 }
 6 Person.prototype.gether = function(){
 7   alert("gether");
 8 }
 9
10 function boy(name,age,tall,face){
11 //call/apply Person.apply(this,[name,age,tall]);
12   Person.call(this,name,age,tall);
13   this.face = face;
14 }
15 boy.prototype.play = function(){
16   alert("playing");
17 }
18
19 var boys = new boy("小明",12,160,"circle");
20 boys.play();


组合继承:(推荐)

  既继承了父类的模板,又继承了父类的原型对象。优点方便了子类实例传参,
  缺点就是Boy.pertotype = new Persion() 函数又实例一次,函数内部变量又重复实例一次,
  大程序时候会很好性能。

 1 // 父类
 2 function Person(name,age){
 3   this.name = name;
 4   this.age = age;
 5 }
 6 // 父类的原型对象属性
 7 Person.prototype.id = 10;
 8 // 子类
 9 function Boy(name,age,sex){
10 //call apply 实现继承
11 Person.call(this,name,age);
12   this.sex = sex;
13 }
14 // 原型继承实现 参数为空 代表 父类的实例和父类的原型对象的关系了
15 Boy.prototype = new Person();
16 var b = new Boy('c5',27,'男');
17 alert(b.name)// c5
18 alert(b.id)//10

转载于:https://www.cnblogs.com/NExt-O/p/9757853.html

JavaScript 对象继承相关推荐

  1. JavaScript对象继承方式

    一.对象冒充 其原理如下:构造函数使用 this 关键字给所有属性和方法赋值(即采用类声明的构造函数方式).因为构造函数只是一个函数,所以可使 Parent 构造函数 成为 Children 的方法, ...

  2. Javascript 对象继承 原型链继承 对象冒充 call 混合方式

    一.原型链继承 function ClassA() {} ClassA.prototype.color = "blue"; ClassA.prototype.sayColor = ...

  3. 实现javascript对象继承的完美方式 圣杯模型

    直接上代码:不多说,hhh: 封装成函数,实现功能的实例化 我们要养成抽象实例的能力; 继承–>extend();inherit(); 继承的方法更加适合工业化 这种方法叫做共享原型 Fathe ...

  4. Java程序员从笨鸟到菜鸟之(二十九)javascript对象的创建和继承实现

    JavaScript对象的创建 JavaScript中定义对象的几种方式(JavaScript中没有类的概念,只有对象): 1) 基于已有对象扩充其属性和方法:  [html] view plainc ...

  5. JavaScript大杂烩4 - 理解JavaScript对象的继承机制

    JavaScript是单根的完全面向对象的语言 JavaScript是单根的面向对象语言,它只有单一的根Object,所有的其他对象都是直接或者间接的从Object对象继承.而在JavaScript的 ...

  6. 如何更好地理解Javascript对象的自有属性和原型继承属性

    Javascript对象具有"自有属性"(own property),也有一些属性是从原型对象继承而来的.为了更好地理解对象自有属性和继承属性下面的示例深入解释了属性的访问和设置细 ...

  7. Javascript的对象继承方法

    许多OO 语言都支持两种继承方式: 接口继承:只继承方法签名 实现继承:继承实际的方法. 由于函数没有签名,在ECMAScript 中无法实现接口继承.ECMAScript 只支持实现继承 原型链继承 ...

  8. JavaScript中的面向对象--对象继承

    JavaScript高级程序设计第3版 p162 这里总结一下JavaScript中对象继承的方式,主要有原型链和借用构造函数模式,衍生的出来的有组合式继承.原型式继承.寄生式继承和寄生组合式继承.原 ...

  9. JavaScript学习笔记(十)构造函数封装、对象检测、对象继承

    构造函数封装 创建一个对象可以使用字面量或者构造函数的方法,但是纯对象只能调用Object.prototype中的方法,并且类型无法细分.(细分类型是指特定的对象可以调用特定方法). 工厂函数模式 f ...

最新文章

  1. Unity OBB分包(基础APK+OBB) 与apk签名
  2. 智点创科机器人_秒会机器人教育_秒会机器人教育加盟_秒会机器人教育加盟费多少钱-武汉智点创科机器人科技发展有限公司-项目网...
  3. 记一次解决 quill(vue-quill-editor) 编辑器中莫名多出一行“pbr/p”的过程...
  4. python实例 79,80
  5. C/C++越来越不行了?让我们看看C++的未来趋势
  6. Jsp页面用javascript加 滑动验证条
  7. java 正序排序_java排序之冒泡排序
  8. 力扣501. 二叉搜索树中的众数(JavaScript)
  9. [费用流]洛谷 P2053 修车(zkw费用流模版)
  10. AH3050_12V升18V2A 同步升压芯片
  11. android谷歌地图获取地址信息,java - 如何通过触摸Android谷歌地图上的屏幕获取地址信息 - SO中文参考 - www.soinside.com...
  12. 详解1M宽带下载速度?1M等于多少kb?
  13. 利用vuex关闭当前tab页签
  14. java操作xml的四种方式
  15. 编写函数 int fac(int x)计算 x!的值。在主函数中输入 n 和 m 的值,通过调用函数 fac 计算m Cn 的值(要求分别用递归和非递归的方法编写函数 fac)
  16. 安卓系统刷机怎么刷机_安卓手机解锁是什么意思 安卓手机刷机知识介绍【图文】...
  17. php7 获取客户端 ip 地址
  18. 【数据处理】超好用的Excel数据拆分工具
  19. Unity C# 网络学习(十二)——Protobuf生成协议
  20. Qt绘图:求圆和椭圆上任意角度点的坐标

热门文章

  1. 解决NTKO Office中文文件名保存到服务器时出现乱码的问题
  2. linux的NetworkManager服务(转)
  3. Oracle碎碎念~2
  4. HDU-1102-Constructing Roads(并查集)
  5. 【android】ActivityGroup初体验
  6. Qomolangma实现篇(三):兼容层设计
  7. java获得指定的开始时间与结束时间之间的所有日期
  8. 蓝桥杯 java基础练习 回形取数
  9. jQuery教程06-基本筛选选择器
  10. Mysql的高可用方案及主从详细配置