- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaScrit面向对象
JavaScript面向对象
理解对象
对象这个词如雷贯耳,同样出名的一句话:XXX语言中一切皆为对象!
对象究竟是什么?什么叫面向对象编程?
对象(object),台湾译作物件,是面向对象(Object Oriented)中的术语,既表示客观世界问题空间(Namespace)中的某个具体的事物,又表示软件系统解空间中的基本元素。
在软件系统中,对象具有唯一的标识符,对象包括属性(Properties)和方法(Methods),属性就是需要记忆的信息,方法就是对象能够提供的服务。在面向对象(Object Oriented)的软件中,对象(Object)是某一个类(Class)的实例(Instance)。 —— 维基百科
对象是从我们现实生活中抽象出来的一个概念,俗话说物以类聚,人以群分,我们也经常说有一类人,他们专业给隔壁家制造惊喜,也就是我们说的老王
这里面就有两个重要概念
类:无论是物以类聚,还是有一类人,这里说的类并不是实际存在的事物,是一些特征、是一些规则等
老王:这是个实物,是现实存在,和类的关系就是符合类的描述
对应到计算机术语,类就是class,定义了一些特点(属性 property)和行为(方法 method),比如说给隔壁制造惊喜的这类人有几个特征
长相文质彬彬,为人和善
姓王
同时这些人还有技能(行为)
帮隔壁修下水道
亲切问候对方儿子
我们刚才就描述了一个类,用代码表示就是
class LaoWang{
string name;
string familyNmae = wang;
bool isKind = true;
LaoWang(string name){
this.name = name;
}
void fixPipe(){
statement
}
void greetSon(){
statement
}
}
符合这些特点并且有上述行为能力的,我们称之为老王,从描述我们就可以看出来LaoWang不是指某个人,而是指一类人,符合上述描述的都可能是老王!用计算机术语说就是没个活蹦乱跳的老王都是类LaoWang的实例。用代码描述就是
LaoWang lw1 = new LaoWang(yi);
LaoWang lw2 = new LaoWang(er);
...
LaoWang lw1000000 = new LaoWang(baiwan);
可以看出我们能够根据类LaoWang实例化出成千百万个老王来,老王不是一个人在战斗!
封装
刚才我们说的已经涉及到了对象的一个重要特性——封装
以前我们可能会有这样的描述
王一长相文质彬彬,为人和善,姓王,有技能帮隔壁修下水道、亲切问候对方儿子
王二长相文质彬彬,为人和善,姓王,有技能帮隔壁修下水道、亲切问候对方儿子
王三长相文质彬彬,为人和善,姓王,有技能帮隔壁修下水道、亲切问候对方儿子
王四长相文质彬彬,为人和善,姓王,有技能帮隔壁修下水道、亲切问候对方儿子
...
王百万长相文质彬彬,为人和善,姓王,有技能帮隔壁修下水道、亲切问候对方儿子
有了对象的思想我们可以这样说了,首先定义一类人
有那么一类人
1. 长相文质彬彬,为人和善
2. 姓王
同时这些人还有技能(行为)
1. 帮隔壁修下水道
2. 亲切问候对方儿子
然后是实例化,也就是对号入座
王一是老王
王二是老王
...
王百万是老王
也就是我们通过类来描述一套规则,其中包括
属性
行为
对于这个类实例化出的对象,也就是副歌这个类描述的对象,不用去关心对象细节,我们认为符合类的描述,就会有类规定的属性和方法,至于每个方法具体实现细节不去关注,比如老王怎么给人修水管,我知道他有修水管的技能,然后用的时候让他去修就好了(只要不修我家的)
我们称这种隐藏细节的特征叫做封装
JavaScript 对象
因为JavaScript是基于原型(prototype)的,没有类的概念(ES6有了,这个暂且不谈),我们能接触到的都是对象,真正做到了一切皆为对象
所以我们再说对象就有些模糊了,很多同学会搞混类型的对象和对象本身这个概念,我们在接下来的术语中不提对象,我们使用和Java类似的方式,方便理解
function People(name){
this.name = name;
this.printName = function(){
console.log(name);
};
}
这是一个函数,也是对象,我们称之为类
var p1 = new People(Byron);
p1是People类new出来的对象,我们称之为实例
类和实例的关系用我们码农的专业眼光看起来是这样的
类就是搬砖的模具,实例就是根据模具印出来的砖块,一个模具可以印出(实例化)多个实例,每个实例都符合类的特征
您可能关注的文档
最近下载
- 离散制造数字化智能工厂解决方案.pdf VIP
- 2025年度华医网继续教育答案-常见心血管疾病的中西医结合诊疗策略.docx VIP
- GB∕T 1355-2021 小麦粉 GB∕T 1355-2021 小麦粉.pdf
- 欧洲人的标准 EN10088-1-2005-Eng.pdf VIP
- Panasonic XQG70-E70XS E70GS E70GWwashing machine Manual说明书用户手册.pdf
- 函数的定义与函数的性质.pptx VIP
- 人工智能行业市场前景及投资研究报告:养老机器人,AI养老.pdf VIP
- 智能制造系统感知分析与决策 配套课件.ppt
- 《中国水资源现状》课件.ppt VIP
- 水土保持项目可行性研究报告.doc VIP
文档评论(0)