DayJs源码(五)Dayjs插件

在DayJS中存在许多方法需要结合插件使用的例子。在DayJS中是怎样实现插件功能呢?

首先,dayJS注册插件方法在index.js

dayjs.extend = (plugin, option) => {
  if (!plugin.$i) { // install plugin only once
    plugin(option, Dayjs, dayjs)
    plugin.$i = true
  }
  return dayjs
}

首先extend方法支持传递两个参数,分别是插件本身和插件参数。函数里面将调用插件,同时传入三个参数,分别是插件参数,Dayjs类和dayjs函数。

咱们直接找一个插件看看里面的实现方法。存放插件的贷方就在plugin文件夹中
以dayOfyear插件为例,此方法返回一个number,表示Dayjs的年份,或者设置年份的日期。源码如下:

export default (o, c) => {
  const proto = c.prototype
  proto.dayOfYear = function (input) {
    const dayOfYear = Math.round((this.startOf('day') - this.startOf('year')) / 864e5) + 1
    return input == null ? dayOfYear : this.add(input - dayOfYear, 'day')
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容