Javascript 在JS中定义类(ES5与原型)

Javascript 在JS中定义类(ES5与原型),javascript,oop,Javascript,Oop,我正在研究一些定义类()的常用方法 我看到的两个主要方面: 简单原型: function Person(name) { this.name = name; } Person.prototype.getName = function() { return this.name; } ES5Object.create,Object.defineProperties 我想知道为什么我会考虑ES5的方式看起来更复杂?有什么好处吗?也许唯一的主要优势是拥有像某些强类型语言那样的只读属性 对象。仅当

我正在研究一些定义类()的常用方法

我看到的两个主要方面:

  • 简单原型:

    function Person(name) { this.name = name; }
    Person.prototype.getName = function() { return this.name; } 
    
  • ES5
    Object.create
    Object.defineProperties


我想知道为什么我会考虑ES5的方式看起来更复杂?有什么好处吗?也许唯一的主要优势是拥有像某些强类型语言那样的只读属性

对象。仅当您希望这些属性具有特定属性(例如,不可枚举、只读或具有getter或setter函数)时,才需要定义属性

没有必要将其用于普通类及其方法,因为您描述的“简单原型”方法已经足够了