深入剖析 JavaScript 原型与原型链89


什么是原型?

在 JavaScript 中,原型是与函数或对象关联的一个对象。它包含该函数或对象的共有属性和方法。当创建新对象时,它将继承其原型的属性和方法。

什么是原型链?

原型链是一个对象数组。每个对象都有一个指向其原型的指针。如果对象不包含某个属性,JavaScript 将逐级沿原型链搜索该属性,直到找到它或到达原型链的末尾。

原型链的结构

每个 JavaScript 对象都有一个私有的 [[Prototype]] 内部属性,该属性指向其原型。原型也具有自己的 [[Prototype]] 属性,指向其原型,依此类推。

创建一个原型

可以通过 () 方法或使用构造函数手动创建原型。使用 ():
```js
const personPrototype = {
name: "John Doe",
age: 25
};
const person1 = (personPrototype);
```
使用构造函数:
```js
function Person(name, age) {
= name;
= age;
}
= {
sayHello() {
(`Hello, my name is ${} and I am ${} years old.`);
}
};
const person2 = new Person("Jane Doe", 30);
```

访问原型

可以使用 () 方法获取对象的原型。```js
(person1); // personPrototype
(person2); //
```

原型链中的属性查找

JavaScript 使用原型链来查找对象的属性。如果对象不包含某个属性,JavaScript 将逐级沿原型链搜索该属性。如果在原型链的末尾仍然找不到该属性,则将返回 undefined。```js
; // "John Doe"
; // 25
(); // "Hello, my name is John Doe and I am 25 years old."
```

修改原型

可以通过使用 () 方法或直接向原型添加属性和方法来修改原型。不过,修改原型链会导致所有继承该原型的对象也受到影响。```js
(personPrototype, {
gender: "male"
});
(); // "male"
```

原型和原型链是 JavaScript 中理解对象行为的重要概念。原型提供了一个共享属性和方法的机制,而原型链允许对象访问其原型及其祖先原型的属性和方法。了解这些概念对于理解和操作 JavaScript 对象至关重要。

2024-12-20


上一篇:JavaScript 滚动条操控指南

下一篇:JavaScript 函数中的函数