JavaScript Prototype
JavaScript 是一种面向对象的编程语言,但它没有类(class)的概念,至少在 ES6 之前是这样的。在 JavaScript 中,对象(object)是核心概念,而原型(prototype)则是对象继承的基础。本文将深入探讨 JavaScript 的原型机制,包括原型链、原型继承以及如何有效地使用原型。
1. 理解原型
在 JavaScript 中,每个函数都有一个特殊的属性叫做 prototype
,这个属性是一个对象,它包含了可以被特定函数的所有实例继承的属性和方法。当我们使用构造函数创建一个新对象时,这个新对象会内部链接到构造函数的 prototype
对象。
function Person(name) {
this.name = name;
}
Person.prototype.greet = function() {
console.log('Hello, my name is ' + this.name);
};
var john = new Person('John');
john.greet(); // 输出: Hello, my name is John
在上面的例子中,Person
是一个构造函数,它有一个 prototype
属性,该属性包含一个 greet
方法。当我们创建一个新的 Person
实例 john
时,john
可以访问 greet