导航:首页 > 编程语言 > js原型添加静态方法

js原型添加静态方法

发布时间:2024-09-07 22:39:50

㈠ dayjs源码解析(二):Dayjs 类

上篇文章讲述了dayjs的基础知识、locale、constant和utils,本文将继续深入解析dayjs的核心部分——src/index.js中的Dayjs类。

src/index.js文件结构清晰,按照以下步骤构建:

然而,这里存在两个疑问,可能是为了缩减代码体积,由@iamkun提出。

现在开始正式分析代码。

locale相关全局定义

首先默认导入了locale/en.js英文的locale,然后使用L存储当前使用的locale名字,使用Ls(locale Storage)存储locale对象。

工具补充

定义了一个工具方法parseLocale。这个方法处理以下几种情况:

然后将定义好的parseLocale方法补充到Utils中。

相关方法

在Dayjs类中,关于locale的方法有两个,实例私有方法$locale用来返回当前使用的locale对象;实例方法locale本质上就是调用了parseLocale方法,但最后返回的是新的改变了locale的Dayjs实例。

注意:在dayjs中,许多操作都使用clone()方法来返回新的Dayjs实例,这也是这个库的优点之一。

最后同样将parseLocale方法补充到Dayjs类的静态方法中。

补充Utils

上一节和前文中已经分析了一些Util工具,这里将其补充完整:

注意:这些工具方法没有统一定义在utils.js文件中的原因是用到了index.js作用域中的一些变量。

需要特别关注的是wrapper方法,在Dayjs类中大量应用了该方法,其实是通过date和原实例封装了一个新实例,新实例和原实例的主要区别就是关联的时间不同。

Dayjs类

Dayjs类是整个dayjs库的核心,可以给其定义的实例方法分类,也可以查看官网的文档分类。

解析都写在了代码的注释里:

原型链

通常来说,定义在实例中的方法应该在原型链上,但有几个与时间有关的setter/getter方法相似,所以单独将原型链写在了上面。

这几个方法都是不传参数时为getter,传参数时为setter。

静态属性

还有一些方法和属性挂在了dayjs函数对象上,最核心的是加载插件和加载locale的方法,几个方法的用法都能在官方文档中找到。

如果对dayjs函数对象、Dayjs类和原型的关系感到困惑,可以参考下图,最后形成的关系如下图所示:

总结

如果不看插件部分,dayjs库的核心已经解析完成,看一下默认生成dayjs实例长什么样子:

实例本身的属性是一些与时间相关的属性,各种操作方法都在原型__proto__上。

本节结束,下一节将开始解析dayjs的插件。

㈡ 如何实现JS的静态变量效果,多页面引用一个JS,共享变量或对象值

这样做法其实是有两个不同的comm.js。a界面引用的comm.js,与b界面引用的comm.js虽然是相同的文件,但是在两个页面是不会共享内存的把。

㈢ nodejs通过函数名进行静态方法调用出现类型错误,为什么

在JS里,一切都是对象,所谓的class并不是传统语言上的定义或者声明,而是直内接创建出来了(容已分配内存)。
Myfunc是个构造函数(constructor),所有在构造函数中创建的变量和方法都是prototype的。
因此
function Myfunc(){
this.myMethod=function(){
}
}

function Myfunc(){
}
Myfunc.prototype.myMethod=function(){
}
是等效的。
所以调用前必须new一下。
而下面这段是可以的,因为直接给Myfunc对象加了一个方法myMethod。恩只是写法和用法像静态而已。
function Myfunc(){
}
Myfunc.myMethod=function(){
}

阅读全文

与js原型添加静态方法相关的资料

热点内容
借吧易贷app 浏览:505
央财大数据研究生需要多少分 浏览:393
苹果5视频文件在哪里 浏览:448
苹果编辑叠放怎么添加app 浏览:803
ionic判断是否是安卓 浏览:11
怎么玩约单app 浏览:468
数据线插联想电脑哪里 浏览:934
手机文件传送到u盘后还占内存 浏览:753
制作专业网站注意什么 浏览:449
微盘上传视频显示文件不存在 浏览:309
苹果怎么清理appstore购买记录 浏览:187
iso怎么提取视频文件 浏览:336
求苹果好玩的手游 浏览:703
测量员app如何连rtk 浏览:638
微信红包不显示数字 浏览:367
怀孕日历表app 浏览:217
腾讯云数据产品有哪些 浏览:276
装win10系统的u盘文件系统 浏览:150
光遇云野设计编程是什么 浏览:649
word页码1212 浏览:128

友情链接