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

javascript继承工具函数之三

阅读更多

构造函数/原型混合 方式写类,即属性挂在this上,方法挂在prototype上。

 

工具函数extend如下,实现思路见注释

/**
 * @param {Function} subCls 子类
 * @param {Function} superCls 父类
 */
function extend(subCls,superCls) {
	
	//暂存子类原型
	var sbp = subCls.prototype;
	//重写子类原型--原型继承
	subCls.prototype = new superCls();
	//重写后一定要将constructor指回subCls
	subCls.prototype.constructor = subCls;
	//还原子类原型
	for(var atr in sbp) {
		subCls.prototype[atr] = sbp[atr];
	}
	//暂存父类	
	subCls.supr = superCls;
}

 

父类,

/**
 *  父类Person
 */
function Person(nationality){
	this.nationality = nationality;
}
Person.prototype.getNationality = function() {return this.nationality;}
Person.prototype.setNationality = function(n) { this.nationality = n;}

 子类,注意子类中要显示的调用父类构造器

function Man(nationality,name) {
	Man.supr.call(this,nationality);//调用父类构造器
	this.name = name;
}
Man.prototype.getName = function() {return this.name;}
Man.prototype.setName = function(n) {this.name=n;}

 

执行extend函数,创建Man的实例

extend(Man,Person);
var m = new Man('USA','jack');
console.log(m);
m.setName('lily');
console.log(m.name);
 

 

 

 

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

相关推荐

    javascript继承之工具函数二

    通过阅读这篇博文(链接已提供),我们可以学习如何构建自己的继承工具函数,并理解其工作原理。 在JavaScript中,常见的继承模式有原型链继承、构造函数继承、组合继承、寄生继承、原型式继承、委托继承等。这里...

    javascript指南和函数式编程

    3. **数组和集合**:学习JavaScript中的数组操作,如map、filter、reduce等高阶函数的运用,以及Set和Map等ES6新增集合类型的使用。 4. **函数**:理解闭包、作用域和this的关键概念,学习箭头函数的语法和特性。 5....

    JavaScript实用小函数(一)

    7. **原型链与继承**: JavaScript通过原型实现继承,每个对象都有一个`__proto__`属性,指向创建它的构造函数的原型。继承是通过`prototype`对象和`Object.create()`方法实现的。 8. **多态**: 多态是指同一消息...

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

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

    javascript控件开发之继承关系

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

    javascript(函数查询chm+语法pdf)

    3. **基于原型(Prototype-based)**:JavaScript 使用原型继承,对象可以继承其他对象的属性和方法。 4. **事件驱动(Event-driven)**:JavaScript 可以通过监听和处理用户或系统的事件来实现交互性。 5. **函数...

    QT和网页中的JavaScript函数进行相互调用的实现

    - 首先,创建一个继承自`QObject`的C++类,暴露槽函数给JavaScript。比如,创建一个`MyBackend`类: ```cpp class MyBackend : public QObject { Q_OBJECT public slots: void handleJsCall(const QString &...

    JavaScript实现继承的几种方式

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

    JavaScript继承的特性与实践应用深入详解

    下面将深入探讨JavaScript继承的特性及其实践应用。 1. 伪类继承: JavaScript 的继承机制不直接实现对象间的继承,而是通过构造函数创建对象,并利用`prototype`属性来实现。当一个函数被创建时,它的`prototype`...

    JavaScript函数的特性与应用实践深入详解

    JavaScript是一种面向对象的脚本语言,它的函数特性丰富且灵活,是实现逻辑和业务流程的基石。本文将详细探讨JavaScript函数的特性与应用实践。 首先,JavaScript函数是一种对象,这使得它们拥有对象的所有属性和...

    javascript 继承派生

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

    js定义类 对象 构造函数,类的继承

    这篇文章将深入探讨这三个概念,以及如何实现类的继承。 首先,让我们理解什么是JavaScript中的对象。在JavaScript中,对象是一种数据结构,它可以存储键值对,其中键是字符串,值可以是任何类型的数据。对象可以...

    JavaScript中函数对象调用模式总结

    JavaScript中的函数对象调用模式是编程中至关重要的概念,它涉及到函数作为一等公民、作用域、闭包、原型链等多个核心知识点。这篇博客通过深入分析JavaScript中的函数调用模式,帮助开发者更好地理解和掌握这些概念...

    javascript函数

    通过参数、返回值、作用域、闭包、箭头函数以及模块化,JavaScript函数能够满足各种编程需求,是开发者不可或缺的工具。深入理解和灵活运用这些概念,能帮助你编写出更加高效和易于维护的JavaScript代码。

    JavaScript 基本语法 高级语法 自定义函数下载

    JavaScript,作为全球最广泛使用的编程语言之一,是创建动态网页和交互式应用程序的关键工具。它是一种轻量级的解释型语言,主要应用于客户端的Web开发。这个资源包涵盖了JavaScript的基本语法、高级语法以及自定义...

    JavaScript 继承详解(六)

    总的来说,Prototype.js通过提供`Class.create`和`Object.extend`等工具,使得JavaScript中的继承变得更加易于理解和使用。这种继承机制使得开发者能够创建复杂的对象层次结构,实现了类的概念,并有效地复用了代码...

    深度探讨javascript函数的原型链和闭包

    总结一下,JavaScript中的函数不仅是一种数据类型,还是实现面向对象编程的核心工具。通过原型链,我们可以实现基于原型的继承;通过闭包,我们能够控制作用域和访问变量,提升代码的复用性。理解和掌握这些概念,将...

    JavaScript 继承的实现

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

    Javascript 函数快速查询手册

    原型是JavaScript继承的基础,每个对象都有一个`__proto__`属性,指向其构造函数的原型对象。 六、数组与迭代器 数组是内置的引用类型,可以使用索引访问其元素。`for...of`循环和`Array.prototype.forEach()`等...

    JavaScript装饰器函数Decorator实例详解.docx

    这种设计模式在JavaScript中尤其有用,因为它提供了增加功能的灵活性,而无需传统的继承方式。 在给定的示例中,我们看到了几个装饰器函数的用法: 1. **动态添加`onload`监听函数**: 这个例子展示了如何使用...

Global site tag (gtag.js) - Google Analytics