JavaScript继承方式详解:原型链与原型继承
199 浏览量
更新于2024-09-01
收藏 142KB PDF 举报
"JavaScript 常见的继承方式汇总,包括原型链机制、原型继承等,旨在帮助理解和使用JavaScript中的继承概念。"
在JavaScript中,继承是实现代码复用和创建对象层次结构的关键机制。本篇文章主要介绍了两种常见的继承方式:原型链机制和原型继承。
1. 原型链机制
原型链是JavaScript实现继承的核心,它基于原型对象(prototype)和内部指针(__proto__)来连接不同对象。每个函数(Function)都是Object的实例,因此拥有一个__proto__属性指向Object.prototype。当查找对象的属性时,会沿着对象自身的属性、__proto__指向的原型对象,再到原型对象的__proto__,直至找到Object.prototype或找不到为止。这种逐级查找的过程形成了原型链。
例如,有构造函数Parent和Child,Parent有一个原型对象Parent.prototype,它包含一个指向Parent的constructor指针。创建Child实例时,如果试图访问不在Child实例上的属性,JavaScript会沿着原型链向上查找,直到找到该属性或者到达Object.prototype。
```javascript
function Parent() {
this.x = 199;
this.y = 299;
}
Parent.prototype.say = function() {
console.log('say');
}
function Child() {
this.g = 90;
}
Child.prototype = new Parent(); // 创建原型链
var p = new Parent();
var c = new Child();
console.dir(c);
```
2. 原型继承
原型继承是通过修改子类的prototype,使其指向父类的实例,从而实现继承。这种方式使得子类实例可以直接通过__proto__访问到父类的私有方法。例如:
```javascript
function Parent() {
this.x = 199;
this.y = 299;
}
Parent.prototype.say = function() {
console.log('say');
}
function Child() {
this.g = 90;
}
Child.prototype = new Parent(); // 子类的原型指向父类实例
Child.prototype.constructor = Child; // 修复子类的constructor
var c = new Child();
console.log(c.x); // 199
c.say(); // 'say'
```
在这个例子中,Child.prototype被重写,指向了Parent的一个新实例。因此,Child的所有实例都可以访问Parent的属性和方法。
理解并掌握这些继承方式对于深入学习JavaScript至关重要,它们可以帮助开发者创建复杂的对象结构,实现代码的复用和扩展。在实际开发中,还可以结合其他继承策略,如组合继承、寄生继承、原型式继承等,以适应不同的需求和场景。
2020-10-23 上传
2024-02-16 上传
377 浏览量
739 浏览量
142 浏览量
149 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情

weixin_38575118
- 粉丝: 3
最新资源
- Linux平台PSO服务器管理工具集:简化安装与维护
- Swift仿百度加载动画组件BaiduLoading
- 传智播客C#十三季完整教程下载揭秘
- 深入解析Inter汇编架构及其基本原理
- PHP实现QQ群聊天发言数统计工具 v1.0
- 实用AVR驱动集:IIC、红外与无线模块
- 基于ASP.NET C#的学生学籍管理系统设计与开发
- BEdita Manager:官方BEdita4 API网络后台管理应用入门指南
- 一天掌握MySQL学习笔记及实操练习
- Sybase数据库安装全程图解教程
- Service与Activity通信机制及MyBinder类实现
- Vue级联选择器数据源:全国省市区json文件
- Swift实现自定义Reveal动画播放器效果
- 仿53KF在线客服系统源码发布-多用户版及SQL版
- 利用Android手机实现远程监视系统
- Vue集成UEditor实现双向数据绑定