我正在尝试学习JS / ES,并且对类和对象有些困惑。
下面的两个代码段的功能完全相同,但是最后一个显然使用了一个类。但是第一个用途是什么?我以为一个类在执行时就变成了对象?
我本来希望clock
是一个函数,但显然可以将其用作对象。为什么会这样?
为什么当第一个短于输入时,为什么有人会想使用类方式?
var clock = {
start() {
setInterval(() => console.log(Date()), 1000)
}
}
clock.start()
和
class Clock {
start() {
setInterval(() => console.log(Date()), 1000)
}
}
const c = new Clock
c.start()
类是对象的模板。它们描述了一堆对象的行为。在javascript中,new Clock()
是如何获取class Clock
中新的object的方法。
对象文字语法({foo: 'bar'}
)是创建通用对象的快捷方式。因此,以这种方式创建的对象的class为Object
。另外,以这种方式创建对象并不能使您具有相同行为的new
对象(从某种意义上讲,它们将属于同一类)。
有趣的是,类也是对象(它们可以具有属性和方法)。