返回
探索 JavaScript 原型链的奥秘:揭示对象与函数的原型属性
前端
2024-01-09 05:16:54
理解 JavaScript 原型链的思路关键点
JavaScript 的原型链是一个重要的概念,它决定了对象之间如何继承属性和方法。要理解原型链,我们需要了解几个关键点:
-
原型属性: 每个对象都有一个原型属性,称为
__proto__
。这个属性指向该对象的原型对象,它包含了该对象继承的属性和方法。 -
原型对象: 每个函数都有一个原型对象,称为
prototype
。这个对象包含了该函数创建的对象的属性和方法。 -
继承: 当一个对象从另一个对象继承属性和方法时,它就继承了该对象的原型对象。这使得对象能够访问和使用原型对象中的属性和方法。
-
原型链: 原型链是一个对象到其原型对象的链。当一个对象找不到某个属性或方法时,它会沿着原型链向上查找,直到找到该属性或方法。
对象和函数的原型属性
对象: 对象的原型属性 __proto__
指向其构造函数的原型对象。这意味着对象继承了构造函数原型对象中的属性和方法。例如,以下代码创建了一个对象 person
,它继承了 Object
构造函数的原型对象:
const person = {
name: "John Doe",
};
console.log(person.__proto__); // Object {}
函数: 函数的原型属性 prototype
指向一个对象,该对象包含了该函数创建的对象的属性和方法。例如,以下代码创建了一个函数 createPerson
,它返回一个具有 name
属性的对象:
function createPerson(name) {
return {
name: name,
};
}
const person1 = createPerson("John Doe");
const person2 = createPerson("Jane Doe");
console.log(person1.__proto__); // {name: "John Doe"}
console.log(person2.__proto__); // {name: "Jane Doe"}
结语
通过探索 JavaScript 原型链的奥秘,我们深入了解了对象与函数的原型属性。原型链的运作机制为 JavaScript 中对象的继承和原型属性的使用提供了基础。掌握这些概念对于理解 JavaScript 的面向对象编程至关重要。