讲解一下prototype
时间: 2023-08-31 16:13:00 浏览: 83
在 JavaScript 中,每个对象都有一个内部属性称为原型(即 prototype),它指向另一个对象,这个对象就是当前对象的原型。原型对象也可以有自己的原型,这样就形成了一个原型链。
当我们访问对象的某个属性时,JavaScript 引擎会先在当前对象上查找该属性,如果找不到,就去该对象的原型上查找,如果还找不到,就继续沿着原型链向上查找,直到找到该属性或者到达原型链的顶端。
原型的主要作用是实现继承。在 JavaScript 中,我们可以使用原型链来实现对象之间的继承关系。当我们创建一个对象时,可以指定它的原型对象,这样这个对象就可以继承原型对象的属性和方法。
例如,我们可以使用构造函数来创建一个对象,并指定它的原型对象:
```javascript
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.sayHello = function() {
console.log('Hello, my name is ' + this.name);
};
var person1 = new Person('Alice', 20);
person1.sayHello(); // 输出:Hello, my name is Alice
```
在上面的例子中,我们定义了一个 `Person` 构造函数,它有两个属性 `name` 和 `age`,并且定义了一个 `sayHello` 方法,该方法输出一个问候语。然后,我们创建了一个 `person1` 对象,并调用了它的 `sayHello` 方法,输出了问候语。
在该例子中,`Person.prototype` 就是 `person1` 对象的原型对象。由于 `person1` 对象没有 `sayHello` 方法,它会沿着原型链向上查找,最终找到了 `Person.prototype` 上的 `sayHello` 方法,并成功执行了它。这就是原型的继承特性。