学科分类
目录
JavaScript网页编程

构造函数和类的区别

使用构造方法创建对象虽然很简单、方便,但是与类存在一定的区别。类中的成员方法是定义在类中的,使用类创建对象后,这些对象的方法都是引用了同一个方法,这样可以节省内存空间。示例代码如下。

 1  class Person {

 2   sing() {

 3    console.log('hello');

 4   }

 5  }

 6  var p1 = new Person();

 7  var p2 = new Person();

 8  console.log(p1.sing === p2.sing);  // 输出结果:true

从上述代码可以看出,p1的sing()方法和p2的sing()方法是同一个方法。

使用构造函数创建的对象并不是引用同一个方法,示例代码如下。

 1  function Student() {

 2   this.sing = function() {

 3    console.log('hello');

 4   };

 5  }

 6  var s1 = new Student();

 7  var s2 = new Student();

 8  console.log(s1.sing === s2.sing);  // 输出结果:false

为了解决上述问题,就需要利用原型对象来实现。在下一个小节中我们将对原型对象进行详细讲解。

点击此处
隐藏目录