【问题标题】:JavaScript: When to use a Class vs. a prototype? [duplicate]JavaScript:何时使用类与原型? [复制]
【发布时间】:2020-01-15 15:43:57
【问题描述】:

我了解最新版本的 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"

【问题讨论】:

标签: javascript ecmascript-6 javascript-objects


【解决方案1】:

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

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

直接来自MDN web docs definition

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

【讨论】:

    猜你喜欢
    • 2015-02-05
    • 2011-06-11
    • 1970-01-01
    • 2010-12-06
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    相关资源
    最近更新 更多