gpt4 book ai didi

javascript - JS 构造函数/原型(prototype)与类的语义名称

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:24:06 24 4
gpt4 key购买 nike

在 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 是一个static 方法

我正在教一门关于对象原型(prototype)和类的类(class),所以我想纠正上面的措辞。但另外...

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

  • Rectangle 是一个构造函数
  • getArea 是一个原型(prototype)方法
  • someStaticMethod是一个构造方法

我不完全确定它们在 es5 中的名称是否应该与在 es6 中的名称相同,或者我给它们的名称是否完全准确。

最佳答案

Rectangle is a constructor function

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

getArea is a prototype method

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

someStaticMethod is a constructor method

这有点误导,因为它听起来好像是一种构造某些东西的方法。我更愿意将其称为构造函数的方法。不过,我通常称其为“静态方法”。

关于javascript - JS 构造函数/原型(prototype)与类的语义名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53621847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com