在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')
}
}
网友评论