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是一个构造函数

是的,听起来不错。它是一个构造新实例的函数,因此描述很合适。

getArea是的原型方法

方法是一个作为属性的函数,在这种情况下,它确实是原型的一部分。

someStaticMethod是一个构造函数方法

这有点说错了,因为听起来好像这是一个构建东西的方法。我宁愿将其称为构造函数上的方法。然而,我通常称之为"静态方法"。

您给出的名称非常准确,除了最后一个可能有点争议:

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

你说:

someStaticMethod构造函数方法

你可以这样称呼它,或者简单地称它为一个方法,但本质上,是的,你的问题中的所有内容都是正确的。

最新更新