HLJ 发布于
2025-06-11 10:23:58
0阅读

JavaScript 对象的 prototype 属性

上一篇文章:

JavaScript 原型继承

下一篇文章:

JavaScript 原型系统

JavaScript 对象的 prototype 属性

在 JavaScript 中,prototype 是一个非常重要的概念,它构成了 JavaScript 原型继承的基础。以下是关于 prototype 属性的详细解释:

基本概念

  1. prototype 是一个对象:每个函数都有一个 prototype 属性,它指向一个对象。

  2. 构造函数与 prototype:当函数作为构造函数使用时(通过 new 调用),新创建的对象会继承构造函数的 prototype 属性。

如何使用

function Person(name) {
  this.name = name;
}

// 给 Person 的 prototype 添加方法
Person.prototype.sayHello = function() {
  console.log(`Hello, my name is ${this.name}`);
};

const person1 = new Person('Alice');
person1.sayHello(); // 输出: Hello, my name is Alice

重要特性

  1. 原型链:当访问对象的属性时,JavaScript 会先查找对象本身,如果没有则查找其 prototype,依此类推直到 Object.prototype

  2. constructor 属性:默认情况下,prototype 对象有一个 constructor 属性指向函数本身。

    Person.prototype.constructor === Person; // true
    
  3. 实例继承:所有实例共享同一个 prototype 对象上的属性和方法。

__proto__ 的区别

  • prototype 是函数对象的属性
  • __proto__ 是实例对象的属性,指向其构造函数的 prototype
person1.__proto__ === Person.prototype; // true

现代替代方法

虽然可以直接使用 prototype,但现代 JavaScript 提供了更简洁的类语法:

class Person {
  constructor(name) {
    this.name = name;
  }
  
  sayHello() {
    console.log(`Hello, my name is ${this.name}`);
  }
}

注意事项

  1. 修改 prototype 会影响所有已创建和将要创建的实例
  2. 避免直接替换 prototype 对象,这会破坏 constructor 的引用
  3. 对象字面量的 prototypeObject.prototype

理解 prototype 是掌握 JavaScript 面向对象编程的关键,它构成了 JavaScript 继承机制的基础。

当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2025-06-11/816.html
最后生成于 2025-06-13 20:53:19
上一篇文章:

JavaScript 原型继承

下一篇文章:

JavaScript 原型系统

此内容有帮助 ?
0