首页 > 解决方案 > JavaScript:何时使用类与原型?

问题描述

我了解最新版本的 JavaScript (ES6) 现在支持创建类。我也明白在 ES5 和早期版本的 JS 中创建和使用对象的常用方法是创建对象原型。那么,使用类和下面这样的原型有什么区别,什么时候使用这两种方法呢?:

上课方式:

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  present() {
    return "I have a " + this.carname + ".";
  }
}

mycar = new Car("Toyota");
document.getElementById("demo").innerHTML = mycar.present(); // outputs "I have a Toyota."

原型方法:

function Person(first, last, age, eyecolor) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eyecolor;
}

//adding a new method to the prototype:

Person.prototype.name = function() {
  return this.firstName + " " + this.lastName;
};

var john = new Person("John", "Doe", 43, "Blue");
console.log(john.name); // outputs "John Doe"

标签: javascriptecmascript-6javascript-objects

解决方案


那么,使用类和下面这样的原型有什么区别,什么时候使用这两种方法呢?

简单地回答你的问题,没有真正的区别

直接来自MDN 网络文档定义

在 ECMAScript 2015 中引入的 JavaScript 类主要是 JavaScript 现有的基于原型的继承的语法糖。


推荐阅读