JavaScript中,一个函数除了作为普通意义的函数外,还可以被用来定义为构造函数。什么是构造函数?就是可以用来生成一个对象的函数。例如:
function Student(name,age,city,address){ // this指向构造函数生成的对象 this.name = name; this.age = age; this.city = city; this.address = address; }
函数Student就是一个构造函数,函数名的首字母建议大写,以区别于普通函数。通过new 关键字,构造函数可以创建新的对象。
var xiaoming = new Student("xiaoming",18,"shenzhen","nan shan"); var xiaoping = new Student("xiaoping",19,"guangzhou","tian he"); var xiaojia = Student("xiaojia",18,"shantou","long hu");
xiaoming和xiaoqiang是我们通过构造函数创建的两个对象。以此,我们可以看出Student内部的关键字this指向当前的对象。构造函数虽然没有return语句,但是默认情况下,它返回的是this,也就是当前的对象。普通函数如果没有return语句返回undefined。如果不幸忘记写 new 关键字,那么函数返回的也是undefined。上述代码中的xiaojia变量,接收到的值就是undefined。
(资料图片仅供参考)
构造函数通过prototype属性可以获取构造函数的原型。我们可以通过原型,动态地添加原型方法。例如:
Student.prototype.hello = function(){ alert("Hello," + this.name); }
上述代码所示,我们动态地给Student的原型添加了一个hello方法。
JavaScript也是一种面向对象的语言。区别于Java语言的继承关系,JavaScript对象是通过原型来继承的。父对象、子对象、孙子对象之间的继承关系形成一个链条,我们称它为原型继承链。如下图所示:
xiaoming对象指向它的原型对象,这个原型对象的构造函数是Student,Student称为这个原型对象的构造器(constructor)。
这个原型对象又是继承于另外一个原型对象,它是由Object构造生成的。
xiaoming.__proto__; //xiaoming的原型对象Student.prototype; //Student作为原型对象的构造函数xiaoming.__proto__ == Student.prototype; //truexiaoming.__proto__.constructor == Student;//truexiaoming.__proto__.__proto__ == Object.prototype;//true
生成器也是一种特殊的函数,它提供了一种持续输出数据的能力。举一个斐波拉契生成器的例子如下:
//生成器 function* fib(n){ a = 0; b = 1; for (let i=0;i < n;i++){ yield a; [a,b] = [b,a+b]; } }
上述fib()生成器的定义如下:
类似于函数的调用一样,我们用生成器的名称,后面紧跟括号和参数列表,对生成器进行调用。经过调用后的生成器才具有对外输出数据的能力。
var g = fib(10);
通过next()函数,不断抽取它的输出
var g = fib(10); g.next(); //{value:0,done:false} g.next(); //{value:1,done:false}
上述代码可知,next()函数返回一个对象。其中一个属性是value,表示返回值;另一个是done,表示抽取是否完成
通过一次次调用next()获取生成器的值始终不太方便,我们可以通过for循环对生成器进行遍历。
var g = fib(10); // 遍历生成器 for (;;){ let next = g.next(); if (next.done){ break; } console.log(next.value); }
更方便的遍历方式是通过for...of...的迭代器
var g = fib(10); for (let x of g){ console.log(x); }
文章同时发表在:码农编程网欢迎访问
本节重点:
关键词 :
上一篇 : 摩托行业调研 2023摩托车市场现状及前景分析
下一篇 : 最后一页
构造函数JavaScript中,一个函数除了作为普通意义的函数外,还可以被用
博客园 07-06 16:08:56
构造函数JavaScript中,一个函数除了作为普通意义的函数外,还可以被用
博客园 07-06 16:08:56
现在给大家带来一款公认最好的开箱网站,各大主播都在玩,茄子力荐,在线开箱,即开即取,超高暴率,饰...
游戏港口 07-06 16:33:02
现在给大家带来一款公认最好的开箱网站,各大主播都在玩,茄子力荐,在线开箱,即开即取,超高暴率,饰...
游戏港口 07-06 16:33:02
csgo开箱网站免费抽一次_可以白嫖一次的csgo开箱网站有哪些_csgo免费开箱网站分享下面小编为大家整理介...
游戏港口 07-06 16:29:33
csgo开箱网站免费抽一次_可以白嫖一次的csgo开箱网站有哪些_csgo免费开箱网站分享下面小编为大家整理介...
游戏港口 07-06 16:29:33
摩托车行业市场前景怎么样?近日,2023北京国际摩托车展览会在京举行,2
百度 07-06 16:06:44
摩托车行业市场前景怎么样?近日,2023北京国际摩托车展览会在京举行,2
百度 07-06 16:06:44
动漫行业发展前景怎样?未来动漫行业趋势如何?动漫产业是极具生机和活力
百度 07-06 16:02:33
动漫行业发展前景怎样?未来动漫行业趋势如何?动漫产业是极具生机和活力
百度 07-06 16:02:33
影视行业市场到底怎么样?近年来,随着影视文化产业区的快速崛起,以及
百度 07-06 16:26:13
影视行业市场到底怎么样?近年来,随着影视文化产业区的快速崛起,以及
百度 07-06 16:26:13
大宗商品行业市场到底怎么样?中国物流与采购联合会5日公布了6月份中国
百度 07-06 16:24:46
大宗商品行业市场到底怎么样?中国物流与采购联合会5日公布了6月份中国
百度 07-06 16:24:46
抗抑郁药物行业发展至今,药物已经经过了多达数十次的升级换代,起效时
互联网 07-06 16:15:27
抗抑郁药物行业发展至今,药物已经经过了多达数十次的升级换代,起效时
互联网 07-06 16:15:27
俗话说csgo饰品租不如买,买不如开,这是csgo玩家中流传的至理名言,唯有开箱才能让人享受到乐趣,唯有...
游戏港口 07-06 16:25:04
俗话说csgo饰品租不如买,买不如开,这是csgo玩家中流传的至理名言,唯有开箱才能让人享受到乐趣,唯有...
游戏港口 07-06 16:25:04
2023年7月8日-11日,第25届中国建博会(广州)即将在广州·保利世贸
今日热点网 07-06 16:02:29
2023年7月8日-11日,第25届中国建博会(广州)即将在广州·保利世贸
今日热点网 07-06 16:02:29
视频加载中 新海南客户端、南海网7月5日消息(记者赵航)7月5日,第
南海网 07-06 15:50:54
视频加载中 新海南客户端、南海网7月5日消息(记者赵航)7月5日,第
南海网 07-06 15:50:54
在舆论持续围观之下,“吃粪和解”的事有了第二次的案件披露。7月6日,
澎湃新闻 07-06 15:52:06
在舆论持续围观之下,“吃粪和解”的事有了第二次的案件披露。7月6日,
澎湃新闻 07-06 15:52:06
这些坦克维修好了之后,运到乌克兰就能继续作战,如果维修中心的事情一
军情作家陈曦 07-06 15:59:12
这些坦克维修好了之后,运到乌克兰就能继续作战,如果维修中心的事情一
军情作家陈曦 07-06 15:59:12
逆水寒手游钢鬓野猪王挑战怎么过?不少玩家还没有通关这个挑战,给大家
游戏资讯网 07-06 15:58:58
逆水寒手游钢鬓野猪王挑战怎么过?不少玩家还没有通关这个挑战,给大家
游戏资讯网 07-06 15:58:58
人已去世,居然还在领取补贴?河北青县:对残疾人补贴发放不规范问题开展
检察日报-检察新闻版 07-06 15:42:17
人已去世,居然还在领取补贴?河北青县:对残疾人补贴发放不规范问题开展
检察日报-检察新闻版 07-06 15:42:17
每经AI快讯,伟星新材接受机构调研时表示,目前公司华南区域业务规模仍
每日经济新闻 07-06 15:49:18
每经AI快讯,伟星新材接受机构调研时表示,目前公司华南区域业务规模仍
每日经济新闻 07-06 15:49:18
近期,华南地区锌锭现货的跟盘升水走势备受关注,从SMM10:15的日度粤
上海有色金属网 07-06 15:11:17
近期,华南地区锌锭现货的跟盘升水走势备受关注,从SMM10:15的日度粤
上海有色金属网 07-06 15:11:17
本报讯(实习记者贾润梅)近年来,宁夏回族自治区市场监管厅创新标准化
中国质量报 07-06 15:06:55
本报讯(实习记者贾润梅)近年来,宁夏回族自治区市场监管厅创新标准化
中国质量报 07-06 15:06:55
中国作为全球印制电路板(PCB)行业的最大生产国,占全球PCB行业总产值的
新浪 07-06 15:08:44
中国作为全球印制电路板(PCB)行业的最大生产国,占全球PCB行业总产值的
新浪 07-06 15:08:44
投资股票多年,时间不知不觉近20年过去了,感悟趋势、捕捉拐点、跟随趋
淘股吧 07-06 15:05:29
投资股票多年,时间不知不觉近20年过去了,感悟趋势、捕捉拐点、跟随趋
淘股吧 07-06 15:05:29
按下shift按键先找到并按下你的电脑键丽珠盘上面的shift按键,切换到英文输入法状态。键盘下划线怎么打?...
word中_________上打字的方法如下:1、进入word2010,在要设置下划线的位置输入空格,然后选中空格,点...
word横线上打字横线往后移怎么办?选中横线跑的文字,找到输入文字后横线跑的那几个文字,选中文字。查看...
大熊猫有天敌吗?答案是肯定的。野生大熊猫最大的天敌就是豺,确切的说是四川豺。四川豺主要分布在我国的...
充电桩安装需要什么条件?1、运营充电桩需要电动车使用人数多,小区充电使用率到达一定程度,如果使用率...
联系我们:55 16 53 8@qq.com
关于我们| 联系方式| 版权声明| 供稿服务| 友情链接
经济头条 版权所有,未经书面授权禁止使用
Copyright©2008-2020 By www.jingji.net All Rights Reserved