js用构造函数模拟类的两种方法

树林

以下代码展示了用构造函数(构造器)模拟类的两种方法:

function c1() {
  this.p1 = 1;
  this.p2 = function() {
    console.log(this.p1);
  }
}
var o1 = new c1;
o1.p2();

function c2() {  
}
c2.prototype.p1 = 1;
c2.prototype.p2 = function() {
  console.log(this.p1);
}
var o2 = new c2;
o2.p2();

第一种方法是直接在构造器中修改this,给this添加属性。

第二种方法是修改构造器的 prototype 属性指向的对象,它是从这个构造器构造出来的所有对象的原型。