数组和面向对象数组和面向对象教材.doc

数组和面向对象数组和面向对象教材.doc

ID:35807130

大小:413.00 KB

页数:31页

时间:2019-04-19

数组和面向对象数组和面向对象教材.doc_第1页
数组和面向对象数组和面向对象教材.doc_第2页
数组和面向对象数组和面向对象教材.doc_第3页
数组和面向对象数组和面向对象教材.doc_第4页
数组和面向对象数组和面向对象教材.doc_第5页
资源描述:

《数组和面向对象数组和面向对象教材.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数组和面向对象(第一周第二天教材)version1.0.3珠峰培训内部讲义此教材只配合珠峰培训教学使用郭永峰(QQ:296512521)著2014年5月23日v1.0.3目录1对象31.1初识对象31.2数据发展31.3对象的特点41.4遍历对象42面向对象52.1一个对象的设计模式:单例模式52.2批量生产对象的方式:工厂模式62.3有区别的批量生成对象:构造函数72.4不重复制造轮子的原则:原型模式92.5兼顾以上二者的模式:混合模式132.6总结143数组基础153.1数组定义153.2数组方法153.2.1元素添加和删除153.2.2sli

2、ce和splice方法163.2.3toString方法173.2.4排序方法183.2.5数组转换193.2.6位置方法193.2.7迭代方法203.2.8缩小方法214数组和面向对象224.1数组和对象的关系224.2数组的前世今生234.3对象和数组的同源性234.4检测数组类型244.3数组方法模拟与扩展(深入理解prototype)274.3.1数组去重复的实现284.3.2数组克隆的实现311对象1.1初识对象对象在JavaScript中是对数据类型的笼统的称呼,对象本身也是一种数据类型,在基础课程中讲了单一的值类型,如:varn=0;

3、//number类型varb=true;//boolean类型varstr='abc';//string类型在Javasript中,一共有五种基本的数据类型(null,undefined,string,boolean,number),由于这几种简单的数据类型是按值传递,故而也可以称之为值类型数据。这类数据类型有一个共同的特点,就是它们都表示的是一个值。就是一个数据只表示了一个值,它对应的变量也是只保存了这一个值。就是说i=3这个表达式中,3就是一个单一的数,那么i也只保存了3这么一个值。1.2数据发展但随着数据的复杂程度提高,单一的值类型已不能满足

4、编程的需要,用单一的值类型数据(或复合数据)去描述的复合型数据,这个复合数据就是对象类型数据,比如:varobj={name:'rose',age:22,height:180,write:function(){console.log('icanprogram')}};以上定义了一个简单的复合数据类型的变量,这个变量以键值对的方式来存储数据,由于复合数据类型是按引用传递的,也可以称之为引用类型(Object,Array,Date,RegExp,Function)。而ECMA-262使用专业术语词汇将对象定义为“无序属性的集合,其属性可以包含基本值、对

5、象或者函数”,即通过键值对来描述对象的属性和方法。可以知道,对象就是一种数据结构,用于将多种数据或功能(或叫函数或方法)组织在一起。其实对象类型的数据的意义不仅仅是把多个值组织在一起,更重要的这些集合在一起的值之间还有关联,并且这些值也是对这个对象数据的整体描述,即用数据来描述数据。当然,也可以把obj看做是一个内存块,在内存块中又划分了若干个小内存块,用来存放obj的值,这种数据的存储方式也是需要注意理解的。1.3对象的特点Ø可以存复合值,存很多值;Ø键值对本身是对obj的描述,这些不仅仅是数据了,是描述了obj这个完整的对象的特征;Ø不同的属性

6、之间也是有关系的,有关联的。如:数组的length属性,数组也是对象类型的,用来描述属性的存值个数。属性之间也是有关联的。以上是面向对象编程的特点,在编程语言中,我们经常用对象的这种特点,来描述一个复合的完整数据,即通过数据来描述数据,这就是面向对象的基础,例如:varweb_engineer={name:'',age:30,js:function(){console.log('javascript')},css:function(){console.log('css')}};1.4遍历对象遍历对象的值,用for...in:for(varattri

7、nweb_engineer){alert(attr);//获取属性alert(web_engineer[attr]);//获取值alert(web_engineer.attr);//获取值的另一方式,性能好,但不够灵活}这样就可以依次按顺序的输出属性及对应的属性值,这种以字符形式的对象遍历输出是没有兼容性问题的。需要注意的是,有一种情况会有兼容性问题----以数字为属性,这种情况在chrome浏览器中遍历时会将属性为数字的值优先输出。如:varperson1={name:'somebody',age:22,0:'number1',1:'number

8、2'};注意,这里的person1[0]不是数组值,它是一种类似于数组的对象结构,称为类数组,在后面会详细的说到。2面向对

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。