资料内容:
JavaScript 是一种基于原型继承的编程语言,这使得它与其他如类继承的编程语言有着显著
的区别。原型继承是 JavaScript 对象之间实现继承关系的核心机制。本文将深入探讨 JavaScript
的原型继承机制,并提供实际代码示例,帮助读者理解这一概念。
#### 1. 原型继承简介
在 JavaScript 中,每个对象都有一个内部属性`[[Prototype]]`(在现代浏览器中可以通过
`__proto__`访问),这个属性引用了另一个对象。这个被引用的对象被称为原型,它定义了
原始对象可以继承的属性和方法。
#### 2. 原型链
原型链是一系列通过`[[Prototype]]`属性连接起来的对象序列。当访问一个对象的属性或方法
时,如果该对象本身没有这个属性或方法,JavaScript 引擎会沿着原型链向上查找,直到找
到该属性或方法,或者到达原型链的末端(通常是`Object.prototype`)。
#### 3. 创建对象和原型
在 JavaScript 中,可以通过多种方式创建对象,并设置其原型:
##### 3.1 对象字面量
```javascript
const obj = {
name: 'Kimi',
greet() {
console.log(`Hello, my name is ${this.name}!`);
}
};
```
##### 3.2 使用`Object.create()`
```javascript
const prototypeObj = {
sayHello() {
console.log('Hello!');
}
};
const obj = Object.create(prototypeObj);
obj.name = 'Kimi';```
在这个例子中,`obj`的原型被设置为`prototypeObj`,因此`obj`可以访问`prototypeObj`上的
`sayHello`方法。