跳到主要内容

原型模式

使用原型来共享属性和方法,从而节省内存空间。

原型模式 (推荐 Es6,过时禁止使用的)

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

Person.prototype.sayHello = function () {
console.log(
"Hello, my name is " + this.name + " and I am " + this.age + " years old."
);
};

let person1 = new Person("John", 30);
let person2 = new Person("Alice", 25);

person1.sayHello(); // 输出:Hello, my name is John and I am 30 years old.
person2.sayHello(); // 输出:Hello, my name is Alice and I am 25 years old.

缺点

  • 所有实例共享原型对象中的属性和方法。如果修改了一个实例的原型对象,所有的实例都会受到影响,这可能导致意外的结果。
  • 无法在实例化对象时向构造函数传递参数,因此所有实例在初始化时都会有相同的属性值。