`
rockyuse
  • 浏览: 195397 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

寄生式组合继承

 
阅读更多
function inheritPrototype(subType, superType) {
	function F(){};		//新建一个空对象
	F.prototype = superType.prototype;	//空对象的原型为父类的原型

	var prototype = new F();			//创建对象
	prototype.constructor = subType;	//增强对象
	subType.prototype = prototype;		//指定对象
}



function SuperType(name) {
	this.name = name;
	this.colors = ["red", "blue", "green"];
}

SuperType.prototype.sayName = function () {
	console.log(this.name);
};

function SubType(name, age) {
	SuperType.call(this, name);
	this.age = age;
}

inheritPrototype(SubType, SuperType);

SubType.prototype.sayAge = function () {
	console.log(this.age);
};

var instance1 = new SubType("Nicholas", 29);
console.log(instance1)


instance1.colors.push("black");
console.log(instance1.colors);	//"red,blue,green,black"
instance1.sayName();			//"Nicholas"
instance1.sayAge();				//29

var instance2 = new SubType("Greg", 27);
console.log(instance2.colors);	//"red,blue,green"
instance2.sayName();			//"Greg"
instance2.sayAge();				//27

 

分享到:
评论

相关推荐

    【JavaScript源代码】简单谈谈JavaScript寄生式组合继承.docx

    ### JavaScript寄生式组合继承详解 #### 一、引言 在JavaScript中,对象继承机制是一种非常重要的设计模式。常见的继承方式包括原型链继承、构造函数继承等。今天我们要探讨的是寄生式组合继承——一种结合了原型...

    js代码-JS的继承 1、原型继承 2、构造函数的继承 3、组合继承 4、原型式继承 5、寄生式继承 6、寄生式组合继承

    6. **寄生式组合继承**: 结合了寄生式继承和组合继承,子类的构造函数会调用父类的构造函数来获取属性,同时使用原型链来继承方法。这是JavaScript中效率最高且最常用的继承方式,避免了重复属性和方法,但仍有...

    浅谈JS继承_寄生式继承 & 寄生组合式继承

    总结来说,寄生式继承用于创建对象副本并增强,而寄生组合式继承则通过更高效的方式实现了属性和方法的继承,避免了组合继承的缺点。这两种模式都是JavaScript实现面向对象编程的重要工具,理解它们的原理和应用对于...

    [js高手之路]寄生组合式继承的优势详解

    在之前javascript面向对象系列的文章里面,我们已经探讨了组合继承和寄生继承,回顾下组合继承: function Person( uName ){ this.skills = [ 'php', 'javascript' ]; this.userName = uName; } Person....

    JavaScript寄生组合式继承实例详解

    本文实例讲述了JavaScript寄生组合式继承。分享给大家供大家参考,具体如下: 其实《JavaScript高级程序设计》这本书中已经有完整代码了,只要把代码读懂就知道这个继承是怎么回事。 首先,在js中,给对象定义属性有...

    JavaScript寄生组合式继承原理与用法分析

    这种技术的基本思路是:不必为了指定子类型的原型而调用超类型的构造函数,因为我们所需要的只是超类型原型的一个副本而已(这一点正是组合继承的问题,并且正是JavaScript这种原型式语言的强大之处,直接copy对象-...

    2021年博科校园招聘试题含答案.docx

    13. 抽象继承不是JavaScript的继承方法,JavaScript中常见的继承方式包括原型链、借用构造函数、寄生式组合继承等。(D) 14. 使用jQuery移除超链接的`onclick`属性应使用`$(“a”).removeAttr(“onclick”)`。(A...

    阿里前端面试题第二期.pdf

    寄生式组合继承是实现继承的一种高效方式,它结合了原型式继承和寄生继承的优点。 #### JavaScript 作用域链 作用域链保证了当前执行上下文对变量和函数的有序访问,它是执行上下文中的一个内部属性。 #### this ...

    javascript继承总结

    为了解决组合式继承中构造函数被调用两次的问题,可以采用寄生式组合继承。这种方法避免了创建不必要的父类实例,而是直接从父类原型克隆属性和方法。 ```javascript function inheritPrototype(subType, superType...

    对于JS继承详细介绍( 原型链,构造函数,组合,原型式,寄生式,寄生组合,Class extends)

    在JavaScript中,有多种继承实现方式,包括原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承以及寄生组合继承。随着语言的发展,ES6引入了`Class`关键字和`extends`来简化继承的实现,但其底层机制仍...

    js实现的七种继承方式.md

    使用js实现继承的七种方式,详细讲解了js中的原型链继承,构造函数继承,组合继承(经典继承),原型式继承,寄生式继承,寄生组合式继承,以及ES6中的继承,描述原理以及实现和要点概述等。

    JS继承.txtJS继承.txt

    JavaScript支持多种继承机制,包括原型链继承、构造函数继承、组合继承、寄生式继承以及寄生组合继承等。接下来,我们将详细探讨这些继承方式。 ### 1. 原型链继承 原型链继承是通过将一个对象设置为另一个对象的...

    JS 面向对象之继承---多种组合继承详解

    在JavaScript中,实现继承的几种常见方式有:组合继承、原型式继承、寄生式继承以及寄生组合式继承。下面将对这些继承方式进行详细解析。 首先,组合继承(也称伪经典继承)是结合了原型链继承和借用构造函数继承的...

Global site tag (gtag.js) - Google Analytics