从原生原型一窥 JavaScript 原型链
2024-02-10 22:10:38
原型 是 JavaScript 中一个重要的概念,它允许对象继承其他对象的属性和方法。原型的概念非常强大,它使我们能够创建出具有相同属性和行为的对象集合,而无需重新编写代码。
在 JavaScript 中,每个函数都有一个 prototype
属性。这个属性指向一个对象,该对象包含该函数创建的所有对象的共享属性和方法。例如,Array
函数的 prototype
属性指向一个包含所有数组共享属性和方法的对象。这意味着所有数组都自动继承了这些属性和方法。
我们还可以使用 prototype
属性来为内置对象添加新功能。例如,我们可以添加一个 reverse()
方法到 Array
函数的 prototype
属性上。这将使所有数组都可以使用 reverse()
方法来反转其元素的顺序。
原生原型 是指 JavaScript 自身核心部分中内置的对象的原型。这些对象包括 Object
、Function
、Array
、String
、Number
和 Boolean
等。原生原型的 prototype
属性指向一个包含该对象共享属性和方法的对象。例如,Object
函数的 prototype
属性指向一个包含所有对象的共享属性和方法的对象。这意味着所有对象都自动继承了这些属性和方法。
我们可以通过以下方式访问原生原型的 prototype
属性:
Object.prototype;
Function.prototype;
Array.prototype;
String.prototype;
Number.prototype;
Boolean.prototype;
原生原型的 prototype
属性可以用来做什么?
原生原型的 prototype
属性可以用来为内置对象添加新功能。例如,我们可以添加一个 reverse()
方法到 Array
函数的 prototype
属性上。这将使所有数组都可以使用 reverse()
方法来反转其元素的顺序。
Array.prototype.reverse = function() {
this.sort(function(a, b) {
return b - a;
});
};
现在,我们可以使用 reverse()
方法来反转任何数组的元素顺序:
const arr = [1, 2, 3, 4, 5];
arr.reverse();
console.log(arr); // [5, 4, 3, 2, 1]
注意:
- 在 JavaScript 中,原型是一个非常重要的概念。它使我们能够创建出具有相同属性和行为的对象集合,而无需重新编写代码。
- 原型链是一个从子对象到父对象的对象链。它允许子对象访问父对象的所有属性和方法。
- 原生原型是指 JavaScript 自身核心部分中内置的对象的原型。这些对象包括
Object
、Function
、Array
、String
、Number
和Boolean
等。 - 原生原型的
prototype
属性可以用来为内置对象添加新功能。例如,我们可以添加一个reverse()
方法到Array
函数的prototype
属性上。这将使所有数组都可以使用reverse()
方法来反转其元素的顺序。