javascript面向对象编程高速构建继承关系之整合原型链

zsychanpin      2022-02-10     404

关键词:

前面我们铺垫了非常多细节。是为了让大家更加明晰prototype的使用细节;

如今能够将前面的知识整合起来,写一个函数用于高速构建基于原型链的继承关系了:

function extend(Child, Parent) {
	var F = function(){};
	F.prototype = Parent.prototype;
	Child.prototype = new F();
	Child.prototype.constructor = Child;
	Child.uber = Parent.prototype;
}

使用起来也特别简单:

function Shape(){}
// augment prototype
Shape.prototype.name = ‘shape‘;
Shape.prototype.toString = function(){
	var result = [];
	if (this.constructor.uber) {
		result[result.length] = this.constructor.uber.toString();//super.toString()
	}
	result[result.length] = this.name;
	return result.join(‘, ‘);
};
function TwoDShape(){}
//先继承。再增强
extend(TwoDShape,Shape);

TwoDShape.prototype.name = ‘2D shape‘;

function Triangle(side, height) {
	this.side = side;
	this.height = height;
}

extend(Triangle,TwoDShape);
Triangle.prototype.name = ‘Triangle‘;
//使用继承而来的toString方法
alert(new Triangle(10,5).toString());





08java面向对象之继承

JavaSE基础之八08Java面向对象之继承①对象与对象之间的关系关联关系:最弱的一种关系(学生类中包含了老师)继承关系:比较强的一种关系,is-a,你能够用:什么是什么说通聚合关系:比较强的关系,聚集和组合,什么是什... 查看详情

javascript面向对象编程:构造函数的继承

原文链接:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html总结对象之间继承的5种方法:比如,现在有一个"动物"对象的构造函数。  functionAnimal(){    this.species="动物";  }还有一个"猫"对象的构造函数。... 查看详情

快速理解javascript面向对象编程—原型继承

  总的来说js语言就是门面向对象编程的语言,对象这个概念几乎贯穿了整个js的学习。  对象  创建对象两种方法:(若要生成对象实例必须调用构造函数)    1、varobj={name:"jer",age:12};(在js内部调用了预设的Object()构... 查看详情

javascript面向对象编程—继承和封装

 前 言 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。面向对象主要专注于有哪一个对象来解决这... 查看详情

javascript面向对象编程:非构造函数的继承

转载自:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html 一、什么是"非构造函数"的继承?比如,现在有一个对象,叫做"中国人"。  varChinese={    nation:‘中国‘  };还有一个对象,叫做"医生"... 查看详情

javascript面向对象编程:非构造函数的继承

  什么叫非构造函数的继承?比如,现在有一个对象,叫做"中国人"。  varChinese={    nation:‘中国‘  };还有一个对象,叫做"医生"。  varDoctor={    career:‘医生‘  }请问怎样才能让"医生"去继承"中国人"... 查看详情

javascript面向对象编程:非构造函数的继承

今天是最后一个部分,介绍不使用构造函数实现"继承"。一、什么是"非构造函数"的继承?比如,现在有一个对象,叫做"中国人"。1 varChinese={2    nation:‘中国‘3  };还有一个对象,叫做"医生"。 1 varDoctor={2    ... 查看详情

javascript面向对象编程:构造函数的继承

作者: 阮一峰日期: 2010年5月23日这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例。今天要介绍的是,对象之间的"继承"的五种方法。比如,现在有一个"动物"对象的构造函数。 ... 查看详情

javascript面向对象编程:非构造函数的继承

作者: 阮一峰日期: 2010年5月24日这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承"。今天是最后一个部分,介绍不使用构造函数实现"继承"。一、什么是"非构造函数"的继承?比如,现在有一个... 查看详情

javascript--面向对象原型继承(代码片段)

1.面向对象原型继承面向对象编程JavaScript的面向对象编程和大多数其他语言如Java、C#的面向对象编程都不太一样。如果你熟悉Java或C#,很好,你一定明白面向对象的两个基本概念:所以,类和实例是大多数面向对... 查看详情

javascript面向对象编程:非构造函数的继承

原文链接:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html作者: 阮一峰这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承"。今天是最后一个部分,介绍不使用构造函数实现"... 查看详情

javascript面向对象编程2:构造函数的继承

这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例。对象之间的"继承"的五种方法。比如,现在有一个"动物"对象的构造函数。functionAnimal(){this.species="动物";}还有一个“猫"对象的构造函数。f... 查看详情

javascript面向对象之实现继承的5种方法

1<html>2<head></head>3<body>4<scripttype="text/javascript">56/*7以下为文档原话:8ECMAScript实现继承的方式不止一种。9这是因为JavaScript中的继承机制并不是明确规定的,而是通过模仿实现的。这意味着所有的继承细节并... 查看详情

java面向对象编程之继承

前言Java语言有三大重要的特性,分别是继承、多态和封装。今天我们就来聊聊继承,继承是复用程序代码的有力手段,使用继承我们会少写许多代码,也可以让我们在写代码的时候逻辑变得更加清楚。继承的基本语法在Java语言... 查看详情

javascript面向对象编程:构造函数的继承

今天要介绍的是,对象之间的"继承"的五种方法。比如,现在有一个"动物"对象的构造函数。  functionAnimal(){    this.species="动物";  }还有一个"猫"对象的构造函数。  functionCat(name,color){    this.name=name;    this.... 查看详情

javascript面向对象编程:构造函数的继承

今天要介绍的是,对象之间的"继承"的五种方法。(来自阮一峰)比如,现在有一个"动物"对象的构造函数。functionAnimal(){    this.species="动物";  }还有一个"猫"对象的构造函数functionCat(name,color){    this.name=name;   ... 查看详情

javascript之继承

主要是参考了《JavaScript高级程序设计(第三版)》这本书,根据自己的理解,做了下面的记录 继承是面向对象(OO)语言里面的概念,有俩种继承方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实... 查看详情

javascript面向对象编程---构造函数的继承

这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例今天要介绍的是,对象之间的"继承"的五种方法。比如,现在有一个"动物"对象的构造函数。  functionAnimal(){    this.species="动物";  ... 查看详情