返回

原型与原型链的由来与用途

前端

原型的概念

原型(Prototype) 是一个特殊的JavaScript对象,它充当其它对象的模板。当创建一个新的对象时,该对象将继承其原型的属性和方法。原型本身也可以具有原型,如此这般,原型链条就由此形成。

在原型链中,一个对象可以访问它原型的属性和方法,并且该原型也可以访问其原型的属性和方法,以此类推。通过这种方式,JavaScript可以实现对象间的继承关系,允许对象共享属性和方法,降低代码重复率。

原型链的好处

1. 实现对象间的继承: 原型链允许对象通过继承机制获取其原型的属性和方法,这使得JavaScript可以实现对象间的继承,从而便于代码的重用和维护。

2. 减少代码重复: 由于原型链允许对象共享属性和方法,因此可以减少代码重复率,降低维护成本。

3. 增强代码的灵活性: 原型链使对象属性和方法的定义更加灵活,能够根据需要轻松地向对象添加属性和方法。

4. 实现动态语言特性: 原型链是JavaScript动态语言特性的重要基础。通过原型链,JavaScript可以实现诸如动态添加属性和方法之类的动态语言特性。

如何找到对象的原型对象?

可以使用JavaScript的proto 属性来获取对象的原型对象。proto 属性返回一个对象的原型,该原型是一个拥有属性和方法的对象。

const player = {
  name: 'John Doe',
  age: 30,
};

const playerPrototype = player.proto; // 获取player对象的原型对象
console.log(playerPrototype); // {name: 'John Doe', age: 30}

new的作用

new 关键字是JavaScript中用于创建新对象的一个运算符。new 关键字执行以下操作:

  1. 创建一个新的空对象。
  2. 将新对象设置为指定构造函数的原型。
  3. 调用构造函数,传入适当的参数。
  4. 返回新创建的对象。
function Player(name, age) {
  this.name = name;
  this.age = age;
}

const player1 = new Player('John Doe', 30);
console.log(player1); // {name: 'John Doe', age: 30}

什么是原型链?

原型链(Prototype Chain) 是一个对象从其原型到原型最终到达Object.prototype的一个链式结构。在原型链中,每个对象都具有一个原型对象,而该原型对象也具有一个原型对象,依此类推,最终到达Object.prototype。

原型链允许JavaScript对象访问其原型的属性和方法。当一个对象访问其属性或方法时,如果该属性或方法不存在于该对象中,则JavaScript会沿原型链向上查找,直到找到该属性或方法或到达Object.prototype。

原型链在JavaScript中扮演着重要的角色。它允许对象共享属性和方法,实现了对象间的继承,从而提高了代码的重用性和灵活性。