javascript对象

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 类型的静态方法来获取时间信息。