关于Js继承的几种方式,总结一下,以便查看。
第一种 prototype 引用型原型继承
语言支持:js原生支持的继承方式 构造器的的prototype属性作为类的原型 每个该类的对象都持有一个到原型的引用 当对象中的属性不存在时 可以访问原型的属性
代码示例:
<script>
function parent(){
this.x=10;
}
function child(){
}
child.prototype=new parent();
var childObj=new child();
alert(childObj.x);
</script>
第二种 复制型原型继承
语言支持:js new运算符的性质 当构造函数return值为非空对象时 new表达式返回return的对象
代码示例:
<script>
function parent(){
this.x=10;
}
function child(){
var ret=new parent();
ret.y=20;
return ret;
}
var childObj=new child();
alert(childObj.x);
</script>
第三种 类继承 属性抄写
语言支持:for in枚举对象所有属性
代码示例:
<script>
function parent(){
this.x=10;
}
function child(){
var parentObj=new parent();
for(var p in parentObj)this[p]=parentObj[p];
}
var childObj=new child();
alert(childObj.x);
</script>
第四种 类继承 对象冒充
语言支持: 1.动态添加和删除方法 2.函数的call和apply
代码示例:
<script>
function parent(){
this.x=10;
}
function child(){
this.parent=parent;
this.parent();
delete this.parent;
}
var childObj=new child();
alert(childObj.x);
</script>
<script>
function parent(){
this.x=10;
}
function child(){
parent.call(this);
}
var childObj=new child();
alert(childObj.x);
</script>
第五种 原型抄写
语言支持:通过修改类的原型对象 可以为一类对象添加属性和方法
代码示例:
<script>
function parent(){}
parent.prototype.me=function(){alert("parent")};
function child(){}
for(var p in parent.prototype)child.prototype[p]=parent.prototype[p];
var childObj=new child();
childObj.me();
</script>
第六种 元类
语言支持: js函数都是对象 且js函数可被构造
代码示例:
<script>
function parent(string){
var child=new Function("this.x=10;"+string);
return child;
}
var child=new parent("this.y=20;");
var childObj=new child();
alert(childObj.y);
</script>
分享到:
相关推荐
本篇文章将深入探讨JavaScript中实现继承的几种常见方式。 1. 原型链继承 JavaScript的原型(prototype)机制是实现继承的基础。每个函数都有一个prototype属性,这个属性指向一个对象,这个对象的属性和方法可以被...
JS继承的几种方式的附录源码
JavaScript 的 9 种继承实现方式归纳 JavaScript 中的继承方式是基于原型的,与基于类的编程语言,如 C++ 和 Java,...JavaScript 中的继承方式非常多样化,每种方式都有其优缺点,选择哪种方式取决于具体的应用场景。
下面将详细介绍几种常见的继承实现方式,并探讨它们的特点与应用场景。 #### 一、原型链继承 **核心思想**: 将父类的实例设置为子类的原型。 **实现方式**: ```javascript function Animal(name) { this.name = ...
配合我的博文 js 之几种继承的方式一起学习,欢迎大家交流指正
以上就是JavaScript中实现继承的几种常见方式,每种方式都有其适用场景和优缺点。开发者应根据项目需求和团队习惯选择合适的方法。在实际开发中,ES6的类继承由于其简洁的语法和良好的可读性,已成为主流选择。
实现继承主要有以下几种方式: 1. **原型链继承**:这是最基础的继承方式,通过修改子类的`prototype`为父类的实例,实现共享父类的属性和方法。例如: ```javascript function subObj() {} subObj.prototype = ...
Javascript中的几种继承方式对比分析_.docx
以上就是JavaScript中几种常见的继承方式,每种方式都有其适用场景和局限性。在实际开发中,根据具体需求选择合适的继承方式是非常重要的。例如,在需要传递初始化参数时,可以考虑使用构造函数继承或组合继承;而在...
在JavaScript中,实现继承的几种方式可以带来不同的好处和权衡,主要包括原型链继承、构造函数继承、组合继承以及原型式继承等。 首先,原型链继承是基于原型对象的属性共享机制。每个对象都有一个指向其原型对象的...
以上四种方式各有优缺点,实际开发中应根据需求选择合适的继承策略。例如,如果需要继承原型属性和方法,可以选择原型链继承或组合继承;如果需要确保实例属性的独立性,可以考虑构造继承或寄生组合继承。在现代...
JavaScript 是一种动态类型的编程语言,其核心特性之一就是原型继承。在JavaScript中,对象可以通过原型链实现继承,这是JavaScript中实现面向对象编程的重要方式。本文将详细介绍JavaScript中的三种主要继承方法:...
主要有以下几种继承方式: 1. **原型链继承**:JavaScript的对象都有一个proto属性,指向创建它的函数的原型对象。通过修改原型对象,可以实现属性和方法的继承。这是JavaScript中最基础的继承方式。 2. **构造...
本文实例讲述了js实现继承的5种方式。分享给大家供大家参考,具体如下: 1、继承第一种方式:对象冒充 function Parent(username){ this.username = username; this.hello = function(){ alert(this....
在探讨JavaScript编程中继承方式的比较分析之前,首先需要理解继承的概念及其在面向对象编程中的...通过这些继承方式的比较分析,我们可以更深入地理解JavaScript继承的原理和技巧,进而在开发中做出更合适的设计决策。
JavaScript中的继承机制是其面向对象特性的重要组成部分。虽然JavaScript被许多人认为不是一种传统的面向对象语言,但它的灵活性...无论选择哪种方式,理解其工作原理是至关重要的,这有助于编写出高效、可扩展的代码。
JavaScript定义类的几种方式包括工厂方式、构造函数和原型方式,每种方法都有其特点和适用场景,接下来我们将详细探讨。 工厂方式是最早期的面向对象编程在JavaScript中的实践之一。使用工厂方式定义类,本质上就是...
### JavaScript中的几种继承方法示例 #### 一、原型链继承 **原理**: 在JavaScript中,原型链继承是一种实现继承的方式,它通过让子类的原型对象指向父类的一个实例来实现属性和方法的共享。 - **核心概念**: 每个...