在
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
你可以称之为,或者只是一种方法,但基本上,是的,你问题中的所有问题都是正确的.