JavaScript专题JavaScript面向对象上.ppt_第1页
JavaScript专题JavaScript面向对象上.ppt_第2页
JavaScript专题JavaScript面向对象上.ppt_第3页
JavaScript专题JavaScript面向对象上.ppt_第4页
JavaScript专题JavaScript面向对象上.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaScript 专题 JavaScript面向对象上,姜 昊,ITCAST签约讲师,本讲概述,通过本讲的学习你将学到: JS中的对象 JS中继承 对象成员 window对象 作用域链,引言,在Java语言中有一句非常著名的话Everything is Object。在JS中也是一样,所有的东西都是对象。对象是一切的基础,在本讲中首先给大家介绍下什么是对象。,JS中的对象,对象就是包含一组变量和函数的集合实例。 通常对象由类派生而来,而类定义了对象拥有的属性和方法。如果你的脚本都是对象之间的交互操作那么就可以说这个脚本是面向对象的脚本。 JavaScript是一种基于原型(prototype)的面向对象的语言,没有类的概念,所有的一切都派生自现有对象的一个副本。,JavaScript中的对象分为以下2类: Function对象,例如alert()函数可以使用参数改变此类对象的功能如alert(“abc”) Object对象,这类对象无法像Function类对象那样调用,而且具有固定的功能。 如:var obj = new Object(); obj(“abc”);/会报错,因为obj不是Function类型的对象 Function类型对象也分为2类: Function实例,例如alert(),可以使用参数来调用。 做为构造函数的Function,必须通过new关键字来进行实例化。,为了提高使用效率,JavaScript提供了下列内置对象。 Object是通用基础对象,可以使用它来创建简单的静态对象。其简写是。 Function是被所有使用参数的对象复制的对象,也是在脚本中定义函数时所创建的对象,其简写是function() 。 Array是一种特殊的属性和方法的集合,比如使用它的length属性可以迭代操作这类对象,使用方括号加序号也可以访问它的属性。其简写是。 String、Boolean、Number分别用来表示字符串、布尔值、数字。 除此之外还有Math、Date、RegExp及其他内置对象。,所有的内置对象都可以通过new关键字或其简单语法形式来建对象。 如:var obj = new Object();等同于var obj = ; var arry = new Array();等同于var arry = ; 其他的就不做举例了,继承,继承是面向对象中重要的组成部分。当创建自己的对象时你可以扩展或继承现有对象的属性和方法。继承为重用对象提供了便捷的途径,这样你就可以把精力完全集中于新的改进代码中。 与传统的面向对象语言不同,JavaScript是基于原型的面向对象这就导致无法从一个类扩展出另一个类的底层类结构。在JS中继承是通过简单的从一个对象原型向另一个对象原型复制方法而实现的。,function init() var person = ;/等同于var person = new Object(); person.getName = function() alert(“person name“); ; person.getAge = function() alert(“person age“); ; /创建另一个对象 var student = ; student.getStuNum = function() alert(“student stuNum“); ;/创建其本身的方法 student.getName = person.getName; person.getName = function() alert(“person1 name“); ; student.getAge = person.getAge; student.getName(); person.getName(); ,对象是什么?,数组的两种实现方案 顺序数组、散列数组(key,value) 对象关联数组属性包存储体 对象只有成员访问操作,原型/对象 属性包,原型只存在于function中,它实质就是一个对象被创建后引擎默认创建一个空的prototype对象,既然对象是属性包那么原型也就是一个属性包。 原型中读的时候从原型链上读,写的时候往自己里面写。,function Obect2() function Object3() Ototype = new Object2(); Opertype.foo= aObj = new Object3(); aObj.foo() Ototype.foo= aObj.foo();,对象成员,你已经理解了一些简单的老函数如alert(),但是当你使用document的body属性或者document的getElementById()方法时,你时在访问document对象的一个成员。以上属性和方法都被称为对象的成员,因为他们都从属于父对象,这个父对象就是上面例子中的document。其中body时属性getElementById是方法。 实际上属性自身只是一个Object对象或扩展自Object对象的实例。方法也扩展自Object对象但是它可以接收属性所以他是Function对象的实例,还有就是方法可以有返回值。 请看下例子,window对象,我们写的大部分方法都是隶属于window对象的。在下面的例子中: function myFunction(message) alert(message); 该方法实际上都是全局window的对象方法。所以 myFunction(“aaa”)等同于window.myFunction(“aaa);,覆盖作用域链中的对象,function override() var alert = function(message) window.alert(override+message); ; alert(alert); window.alert(window.a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论