当前位置:首页 > 生活百科

javascript构造函数的作用(构造函数的八种方法)

栏目:生活百科日期:2025-02-19浏览:0

由于JavaScript的特性,一个构造函数就可以实现类的功能,所以有的时候,我们定义一个类,往往可以直接写一个构造函数:

function Cup(cupCover, cupBody, cupBottom) {    this.cupCover = cupCover    this.cupBody = cupBody    this.cupBottom = cupBottom}复制代码

这样的定义方式很灵活简单,但有时候实例化出错了,也不会有相应的提示。

比如我们这样的实例化:

let cup = Cup('iron', 'plastic', 'rubber')复制代码

当我们没有加上new的时候,编译器并不会提示(弱类型的特点),而且由于Cup本身就是一个函数,所以在使用的时候,也可以正常运行。

但是当我们cup此时肯定不是Cup类的,显而易见,当我们把Cup当作一个函数执行的时候,cup的值取决于函数的返回。这里没有返回,所以是undefined。

那么我们执行完这个Cup()函数后,造成了什么影响呢?答案是Cup的属性绑定到了全局变量上。对于浏览器来说就是window

cup.cupCover // undefinedwindow.cupCover // "iron"复制代码

所以,我们该如何避免这种情况发生呢?

我们可以稍稍改造一下Cup构造函数:

function Cup(cupCover, cupBody, cupBottom) {    if(this instanceof Cup) {        this.cupCover = cupCover        this.cupBody = cupBody        this.cupBottom = cupBottom    }    else {        return new Cup()    }}复制代码

这样当我们再次不小心执行let cup = Cup(&‘iron&’, &‘plastic&’, &‘rubber&’)时,由于此时的this并不是Cup的派生类,所以我们直接返回一个实例。

let cup = Cup('iron', 'plastic', 'rubber')cup.cupCover // "iron"复制代码

而这种形式的构造函数,就是今天要说的安全模式的构造函数。

“javascript构造函数的作用(构造函数的八种方法)” 的相关文章

创业板代码是多少(中小板与创业板的区别)

作为中国的股民真的需要有持之以恒坚持学习的毅力!有数据统计,在中国的股民群体中,拥有大学学历的人数占比超过了80%,拥有本科学历的人数占比超过50%。因此中国的...

个人目标计划书怎么写(2020工作计划和目标)

个人年度工作计划范文一  在2019年的一年里,凭借前几年的蓄势,已具备步入了快车道,为实现了稳步的效益增长,以崭新姿态展现在客户面前,一个更具朝气和活力的、车...

宝妈在家做什么能赚点钱,宝妈在家挣钱的十大办法

1、翻译  宝妈在家做什么兼职好?翻译是非常靠谱的一个兼职了,但是门槛高,需要很高的外语水平。不过能做到翻译的话,兼职的钱也是不少的。  2、自媒体投稿  自媒...

写软文有什么技巧,优秀软文范例供你参考

“软文”作为一种非常有效的网络推广方式,逐渐被各行各业的朋友们加以利用,利用软文推广大部分朋友取得了非常不错的成绩。但是这种软文推广的方式尽管有效,对于刚刚接触...

ps吸管工具怎么用上色(吸管工具吸颜色步骤介绍)

前面讲解了用裁剪工具纠正拍斜的照片,和裁剪出规定尺寸大小的图片,今天讲解配色。你是不是经常为了不知道怎么配色而烦恼,今天教你一招轻松搞定配色,在你没有好的配色时...

hdtunepro官网注册信息(查看hdtunepro健康状态说明)

HDTune是一款小巧易用的硬盘工具软件,其主要功能有硬盘传输速率检测,健康状态检测,温度检测及磁盘表面扫描等。另外,还能检测出硬盘的固件版本、序列号、容量、缓...

如何清理微信聊天记录,微信按日期删除聊天记录方法

经常用微信聊天的朋友,有一些可能会有删除聊天记录的习惯,有一些朋友可能了解过微信聊天记录比较占用内存,所以会清理聊天记录。清理微信聊天记录的方法:打开微信&&#...

如何选择创业项目,选择创业项目的四个须知要项

1、创业者以自身实力明确创业项目俗话说“让实力说话”,实力就是指创业者的资源能力,它是决定创业者初创企业规模和后续发展能力的重要支柱,是企业经营的主线。原则是“...

gho镜像文件怎么安装系统(gho文件安装系统方法)

以前我们都是运用光驱启动盘安装电脑系统的,但是由于操作起来过于复杂,繁琐,所以现在人们都使用起u盘来安装系统了,但是要怎么使用u盘安装win10系统呢?很多用户...

win10桌面背景怎么换(Win10桌面壁纸设置方法)

许多用户或许已经知道,被称作“十月更新”的Windows1020h3不会带来任何激动人心的功能更新。即便如此,微软还是酝酿着向Insider测试通道推送几项新特...