在 JavaScript 中,每个对象都有一个属性称为 prototype
(原型),它是对象的一个属性,用于实现对象之间的继承关系。
prototype
属性的作用:
-
实现继承:
prototype
允许对象继承另一个对象的属性和方法。当访问对象的属性或方法时,如果对象本身没有该属性或方法,它会去其prototype
中查找,即其原型链上是否有该属性或方法。 -
原型链(Prototype Chain): 如果对象的
prototype
中存在一个引用,但该引用的prototype
又指向另一个对象,这种链式结构形成了原型链。JavaScript 中的对象在查找属性或方法时会沿着原型链向上查找,直到找到或者到达原型链的末端(null
)。
示例:
// 创建一个对象 person
function Person(name) {
this.name = name;
}
// 为 Person 的 prototype 添加方法
Person.prototype.greet = function() {
return 'Hello, ' + this.name;
};
// 创建 person1 和 person2 实例
var person1 = new Person('Alice');
var person2 = new Person('Bob');
// person1 和 person2 继承了 Person 的 prototype 方法
console.log(person1.greet()); // 输出:Hello, Alice
console.log(person2.greet()); // 输出:Hello, Bob
在这个示例中,Person
是一个构造函数,Person.prototype
是一个对象,它包含了所有 Person
实例共享的属性和方法。当创建 person1
和 person2
实例时,它们继承了 Person.prototype
上的 greet()
方法。
prototype
属性允许 JavaScript 对象实现了基于原型的继承机制,这种机制是 JavaScript 中对象间关系的基础。
Was this helpful?
0 / 0