背景:C# 开发人员最近深入研究 JavaScript
下面是在 JavaScript 中创建对象的两种方法。它们之间有什么区别,创建对象时我应该使用/优先考虑哪种方法,为什么?
class John {
constructor(name, birth, height) {
this.name = name;
this.birth = birth;
this.height = height;} }
var Person = function(name, birth, height) {
this.name = name;
this.birth = birth;
this.height = height;}
最佳答案
他们做的事情基本相同。 class
语法是在 ES2015 中引入的,它可以为您做一些事情:
它构建了一个检查,确保该函数在创建新对象时被调用,从而消除了在没有
new
的情况下调用构造函数的一整类错误。允许。它允许使用
super
在构造函数和方法中。它更简单,特别是如果您创建子类。
如果您使用
Error
等内置函数的子类,就会简单得多。或Array
(您可以在没有class
的情况下完成此操作)。
但是您可以在没有 class
的情况下完成所有这些操作如果您更喜欢使用旧语法。
当然,如果不通过 Babel 等工具转换为旧语法,您就无法在 IE 等过时的浏览器上使用新语法。 .
(必须注意:在 JavaScript 的原型(prototype)继承上使用类似类的陷阱是一种风格选择,而不是必需的。如果您愿意,可以直接使用原型(prototype)继承。)
您还可以找到this answer有用,比较class
语法与 function
做同样的事情语法。
关于javascript - JavaScript 中的类与函数构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52666266/