`
zhouyrt
  • 浏览: 1162640 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript继承方式之一

阅读更多

面向对象的语言多数都支持继承,继承最重要的优点就是代码复用,从而构建大型软件系统。如果一个类能够重用另一个类的属性和或方法,就称之为继承。从这个角度来看看js的继承方式。js中继承方式与写类方式息息相关。不同的写类方式造成不同的继承方式。各种流行js库继承方式也各不相同。从最简单的复用开始。

 

1、构造函数写类,通过方法调用复制父类属性给子类 实现继承

 

这里父类,子类都用构造函数方式写,不用原型。子类调用父类函数来复制父类的属性。

/**
 * 父类Polygon:多边形
 * @param {Object} sides
 */
function Polygon(sides) {
	this.sides = sides;
	this.setSides = function(s) {this.sides=s;}
}

/**
 * 子类Triangle:三角形
 */
function Triangle() {
	this.tempfun = Polygon;//父类引用赋值给子类的一个属性tempfun
	this.tempfun(3);//调用
	delete this.tempfun;//删除该属性
	this.getArea = function(){};
}

//new个对象 
var tri = new Triangle();
console.log(tri.sides);//继承的属性
console.log(tri.setSides);//继承的方法
console.log(tri.getArea);//自有的方法

//缺点是对于Triangle的实例对象用instanceof为父类Polygon时是false
console.log(tri instanceof Triangle);//true
console.log(tri instanceof Polygon);//false
 

因为js具名函数有四种调用方式 ,子类还可以有以下的多种实现方式。只是在子类中调用父类方法不同而已。

function Triangle() {
	Polygon.call(this,3);//call方式调用父类
	this.getArea = function(){};	
}

function Triangle() {
	Polygon.apply(this,[3]);//apply方式调用父类
	this.getArea = function(){};
}

function Triangle() {
	var temp = new Polygon(3);//new方式调用父类
	for(atr in temp)//全部复制给子类
		this[atr] = temp[atr];
		
	this.getArea = function(){};
}
 

 

这种方式的缺点是子类的实例对象用instanceof检查父类时总是false。这与java中继承"is a "的关系是违背的。

  • a.rar (577 Bytes)
  • 下载次数: 24
分享到:
评论

相关推荐

    JavaScript学习之三 — JavaScript实现继承的7种方式

    继承是面向对象的核心特性之一,它允许一个对象(子类)获取另一个对象(父类)的属性和方法。本篇文章将深入探讨JavaScript实现继承的七种常见方式,帮助你更好地理解和运用这一概念。 1. 原型链继承(Prototype ...

    JavaScript继承

    此外,JavaScript的灵活性允许开发者选择基于类的继承方式,或者利用原型继承的微妙之处,实现更高效的设计。 4.1 为什么需要继承 继承的主要目的是代码复用和降低耦合度。通过继承,可以在已有类的基础上扩展功能...

    JavaScript实现继承的几种方式

    继承是面向对象的核心特性之一,它允许一个对象(子类)从另一个对象(父类)获取属性和方法,从而形成类之间的层次结构。本篇文章将深入探讨JavaScript中实现继承的几种常见方式。 1. 原型链继承 JavaScript的原型...

    javascript控件开发之继承关系

    在这个主题中,“javascript控件开发之继承关系”主要探讨的是如何利用JavaScript的面向对象特性来构建和组织控件的层次结构,以及如何通过继承来实现代码的复用和模块化。 在JavaScript中,继承是基于原型...

    学习javascript面向对象 javascript实现继承的方式

    继承是面向对象编程的核心概念之一,它允许我们创建一个新对象,该对象继承现有对象的属性和方法。在JavaScript中,实现继承有多种方式,每种方式都有其特点、优势和不足。本文将详细介绍六种实现JavaScript继承的...

    javascript继承之为什么要继承.docx

    JavaScript 继承之为什么要继承 JavaScript 中的继承机制是指子类继承父类的属性和方法,使得子类可以拥有父类的所有特征。继承是面向对象编程的基本机制之一,它可以实现代码复用、提高编程效率和增强代码的可维护...

    javascript继承之工具函数二

    在JavaScript中,继承是面向对象编程的一个核心概念,它允许我们创建基于现有对象的新对象,同时还能继承其属性和方法。本篇将深入探讨一种实现继承的工具函数方法,主要聚焦于`source.js`文件中可能包含的内容。...

    JavaScript继承机制探讨及其应用.pdf

    JavaScript继承机制探讨及其应用 JavaScript是一门弱类型语言,具有函数式编程和面向对象编程的特点。随着近几年JavaScript生态圈的发展和成熟,项目的编码量和复杂度也在呈几何级数增长。JavaScript面向对象编程中...

    javascript 继承派生

    在JavaScript中,面向对象编程是其核心特性之一,而继承和派生则是实现面向对象的重要机制。本资料集合关注的是JavaScript中的继承派生以及与之相关的`apply`和`call`方法。 **继承**是面向对象编程的关键概念,...

    JavaScript中的类继承

    这种灵活性也是JavaScript成为Web开发中不可或缺的语言之一。 总的来说,JavaScript中的类继承并不是一种与生俱来的特性,而是通过构造函数、原型链和继承辅助方法(如`inherits`和`uber`)模拟出来的。这种方式...

    JavaScript 继承详解(三)

    在JavaScript编程中,继承是面向对象编程的核心概念之一,它允许开发者构建出层级化的对象结构。在JavaScript中实现继承有多种方法,其中构造函数和原型链的方式是较为传统的一种,但在实际应用中存在一些问题和陷阱...

    java学习之JavaScript继承

    然而,继承中所涉及的不仅仅是一个对象,并且 js 也没有继承这一现有的机制,那它如何实现的呢? 原型 在 JavaScript 中,每个构造函数都拥有一个prototype属性,它指向构造函数的原型对象,这个原型对象中有一个 ...

    JavaScript 继承详解(四)

    Crockford是JavaScript开发社区最知名的权威,是JSON、JSLint、JSMin和ADSafe之父,是《[removed] The Good Parts》的作者。 现在是Yahoo的资深JavaScript架构师,参与YUI的设计开发。 这里有一篇文章详细介绍了...

    js javascript zInherit 对象 继承

    在JavaScript中,对象继承是实现面向对象编程(OOP)的关键特性之一。对象继承允许一个对象(子对象)从另一个对象(父对象或基对象)那里获取属性和方法,从而实现代码的复用和组织。`zInherit`是JavaScript中一种...

    JavaScript 继承的实现

    JavaScript继承的实现方式多样,除了原型链之外,还有如下几种常见方式: 1. **构造函数继承**:通过调用父构造函数来初始化子对象,但不能避免方法重复。 2. **原型链继承**:通过修改子构造函数的原型使其指向父...

    JavaScript中的继承之类继承_.docx

    本文将详细介绍JavaScript中的类继承概念,包括基本原理、实现方式以及一些高级用法。 #### 二、继承概述 在JavaScript中,继承主要通过原型链来实现。每个对象都有一个`prototype`属性,指向它的原型对象。当尝试...

    Javascript中的封装与继承

    封装是面向对象编程的基本原则之一,它涉及到如何组织和保护代码,以实现数据隐藏和功能模块化。在JavaScript中,我们可以利用函数和闭包来实现封装。函数可以作为构造函数创建对象,通过`this`关键字将数据绑定到...

    javascript继承基础

    ### JavaScript继承基础 在面向对象(OO)编程领域中,封装、继承与多态被认为是三大核心特性。尽管JavaScript并非一种纯粹的面向对象语言,但其确实支持这些特性,并且能够实现对象之间的继承关系。本文将重点介绍...

    Javascript编程中几种继承方式比较分析

    组合继承是目前最常用的继承方式之一,因为它既克服了原型链继承的缺点,又能够继承父类的属性和方法,被广泛应用在JavaScript库(如jQuery)和现代前端框架中。 总的来说,继承是JavaScript编程中的一种强大工具,...

Global site tag (gtag.js) - Google Analytics