javascript – JS构造函数/原型与类的语义名称


javascript es6中我们有类我们可以做这样的事情:

class Rectangle {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }

  getArea() {
    return this.height * this.width
  }

  static someStaticMethod() {
    // does some utility or something
  }
}

这大致只是以下旧版es5代码的语法糖:

function Rectangle() {
  this.height = height;
  this.width = width;
}

Rectangle.prototype.getArea = function() {
  return this.height * this.width
}

Rectangle.someStaticMethod = function() {
  // does some utility or something
}

在es6类中,标记以下内容似乎很简单:

> Rectangle是一个类
> getArea是一个实例方法
> someStaticMethod是一个类或静态方法

我正在教一个关于对象原型和类的课程,所以我希望上面提到正确的措辞.但另外……

在es5 JS的上下文中,上面分类为什么?以下是我的尝试:

> Rectangle是一个构造函数
> getArea是一个原型方法
> someStaticMethod是一个构造函数方法

我不完全确定他们是否应该在es5中被称为与es6中相同的东西,或者如果我给他们的名字是完全准确的.

最佳答案 你给出的名字非常准确,除了最后一个可能有点争议:

Rectangle.someStaticMethod = function() {
  // does some utility or something
}

你说:

someStaticMethod is a constructor method

你可以称之为,或者只是一种方法,但基本上,是的,你问题中的所有问题都是正确的.

点赞