- 1
- 0
- 约4.14千字
- 约 11页
- 2017-12-04 发布于贵州
- 举报
【精选】JavaScript面向对象简介
JavaScript面向对象简介
JavaScript 的核心是支持面向对象的,同时它也提供了强大灵活的 OOP 语言能力。本文从对面向对象编程的介绍开始,带您探索 JavaScript 的对象模型,最后描述?JavaScript 当中面向对象编程的一些概念。
如果您对 JavaScript 的概念(如变量、类型、方法和作用域等)缺乏自信,您可以在重新介绍 JavaScript?这篇文章里学习这些概念。您也可以查阅这篇?JavaScript 1.5 核心指南。
面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式。它使用先前建立的范例,包括模块化,多态和封装几种技术。今天,许多流行的编程语言(如Java,JavaScript,C#,C+ +,Python,PHP,Ruby和Objective-C)都支持面向对象编程(OOP)。
面向对象编程可以看作是使用一系列对象相互协作的软件设计,相对于传统观念,一个程序只是一些函数的集合,或简单的计算机指令列表。 在OOP中,每个对象能够接收邮件,处理数据和发送消息给其他对象。每个对象都可以被看作是一个独立的小机器有不同的作用和责任。
面向对象程序设计的目的是促进更好的编程灵活性和可维护性,并在大型软件工程中广为流行。凭借其十分注重的模块化,面向对象的代码开发更简单,往后维护更容易理解,使其自身能更直接的分析,编码,理解复杂的情况和过程,比非模块化编程方法省事。1
更多关于面向对象编程的描述,请参照维基百科的?面向对象编程?。
基于原型的编程不是面向对象编程中体现的风格,且行为重用(在基于类的语言中也称为继承)是通过装饰它作为原型的现有对象的过程实现的。这种模式也被称为弱类化,原型化,或基于实例的编程。
原始的(也是最典型的)基于原型语言的例子是由大卫·安格尔和兰德尔·史密斯开发的。然而,弱类化的编程风格近来变得越来越流行,并已被诸如JavaScript,Cecil,NewtonScript,IO,MOO,REBOL,Kevo,Squeak(使用框架操纵Morphic组件),和其他几种编程语言采用。1
命名空间是一个容器,它允许开发人员在一个独特的,特定于应用程序的名称下捆绑所有的功能。?在JavaScript中,命名空间只是另一个包含方法,属性,对象的对象。
需要认识到非常重要的一点,与其他面向对象编程语言中的普通对象和命名空间相比,它们在语言层面上没有区别。
创造的JavaScript命名空间背后的想法很简单:一个全局对象被创建,所有的变量,方法和功能成为该对象的属性。使用命名空间也最大程度地减少应用程序的名称冲突的可能性。
我们来创建一个全局变量叫做 MYAPP
在上面的代码示例中,我们首先检查MYAPP是否已经被定义(是否在同一文件中或在另一文件)。如果是的话,那么使用现有的MYAPP全局对象,否则,创建一个名为MYAPP的空对象用来封装方法,函数,变量和对象。
我们也可以创建子命名空间:
下面是用于创建命名空间和添加变量,函数和方法的代码写法:
JavaScript有包括在其核心的几个对象,例如,Math,Object,Array和String对象。下面的例子演示了如何使用Math对象使用其随机()方法来获得一个随机数。
注意:T这里和接下来的例子都假设名为?console.log?的方法全局有定义。console.log?实际上不是 JavaScript 自带的。
查看?JavaScript 参考:全局对象?了解 JavaScript 内置对象的列表。
JavaScript 中的每个对象都是?Object?对象的实例且继承它所有的属性和方法。
JavaScript是一种基于原型的语言,它没类的声明语句,比如C+ +或Java中用的。这有时会对习惯使用有类申明语句语言的程序员产生困扰。相反,JavaScript可用方法作类。定义一个类跟定义一个函数一样简单。在下面的例子中,我们定义了一个新类Person。
我们使用?new?obj?创建对象?obj?的新实例, 将结果(obj 类型)赋值给一个变量方便稍后调用。
在下面的示例中,我们定义了一个名为Person的类,然后我们创建了两个Person的实例(person1?and?person2).
有两种为对象创建实例,请参考?Object.create?。
在实例化时构造器被调用 (也就是对象实例被创建时)。构造器是对象中的一个方法。 在JavaScript,中函数就可以作为构造器使用,因此不需要特别地定义一个构造器方法. 每个声明的函数都可以在实例化后被调用执行
构造器常用于给对象的属性赋值或者为调用函数做准备。 在本文的后面描述了类中方法既可以在定义时添加,也可以在使用前添加。
在下面的示例中,?Person类实例化时构造
您可能关注的文档
- 【精选】html5动态图表FineReport搭建物流报表决策平台的解决方案.pdf
- 【精选】html习题(答案).doc
- 【精选】Huawei AR150&200系列企业路由器产品 详版彩页.pdf
- 【精选】HTQ2008-2009学年湖北省武汉市江岸区七年级(上)期末数学试卷.pdf
- 【精选】HUGIN软件培训教程介绍-2012.pdf
- 【精选】Human Resource Management.ppt
- 【精选】HyperMesh一些常见问题的解答.pdf
- 【精选】html5培训入门教程视频.pdf
- 【精选】HY5900消防电源监控壁挂使用说明书.pdf
- 【精选】hypermesh网格划分总结.pdf
最近下载
- 15万ta电池级硫酸锰新能源材料项目一期竣工环境保护验收监测报告书.pdf VIP
- 西工大航空发动机燃烧学讲义.pdf VIP
- 2025年工业机器人伺服电机性能优化研究报告.docx VIP
- 《深度学习 》课件 第9章-深度强化学习.pptx
- 有机高分子电致发光材料及器件课件.ppt VIP
- 贵州红星发展股份有限公司 高纯钡盐产业化项目 环境影响报告书.doc VIP
- (网络收集版)2025年新课标全国一卷数学高考真题文档版(无答案).pdf
- 2025年工业机器人伺服电机国内外市场对比研究报告.docx VIP
- 2025年无人机驾驶员执照飞行记录在物流运输专题试卷及解析.pdf VIP
- 河南卫生事业单位招聘考试题.pdf VIP
原创力文档

文档评论(0)