js中比如Date对象,它可以实例化对象在调用方
Date也可以直接调用方法,这个是咋实现的呀?比如Date.now()
这两中方式有啥吗不同吗,实现方式是什么呀?
Data 是一个构造函数 。es6 class 写法你知道把? 一般情况下直接访问一个构造函数内部的属性 需要 通过 const date = new Date(). 但是。
static 这个是 指定钩爪函数属性为静态。给你看个例子 比如
```javascript
class obj {
a(){}
static now(){
console.log('我是静态属性,不需要通过new也是访问到我')
}
}
console.log(obj.a) // undefined
console.log(new obj().a) // 可以访问到
// 上面是构造函数默认的情况,就是内部属性没有new 的情况是访问不到的。
console.log(obj.now) // 可以访问到
obj.now() // 控制台打印 我是静态属性,不需要通过new也是访问到我
// 所以,Date 中的 now 也是通过这个方式实现的,它只是加了static 让属性now 静态化了而已。。。能看懂吗。。
```
在 JavaScript 中,Date 类型是可以直接实例化对象的,也可以通过调用 Date 的静态方法来获取当前时间或者其他信息。
例如,你可以使用 new 关键字来实例化一个 Date 对象:
var currentDate = new Date();
这个 Date 对象可以调用其实例方法来获取当前时间的各种信息,例如当前的月份、天数等。
你也可以直接使用 Date 类型的静态方法来获取当前时间的信息,例如:var currentTimestamp = Date.now();
这两种方式的区别在于,实例化一个 Date 对象会创建一个新的对象,并且可以通过这个对象调用实例方法来获取时间信息。而调用静态方法则不会创建新的对象,只是直接调用 Date 类型的静态方法来获取时间信息。