javascript面向对象编程

上传人:第*** 文档编号:53482851 上传时间:2018-09-01 格式:PPT 页数:37 大小:846KB
返回 下载 相关 举报
javascript面向对象编程_第1页
第1页 / 共37页
javascript面向对象编程_第2页
第2页 / 共37页
javascript面向对象编程_第3页
第3页 / 共37页
javascript面向对象编程_第4页
第4页 / 共37页
javascript面向对象编程_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《javascript面向对象编程》由会员分享,可在线阅读,更多相关《javascript面向对象编程(37页珍藏版)》请在金锄头文库上搜索。

1、成都传智播客 ,Javascript面向对象编程,讲师:蔡世友 Email:,成都传智播客 ,Javascript的重要性,使用率 、在web应用中,涉及到前端界面编程基本上都要用到javascript语言; 2、Web2.0及Ajax推动了javascript语言。 3、随着大量的c/s应用转向b/s,富客户端技术的不断推广,javascript语言的应用范围还将不断加大;javascript的特点 简单 动态 基于对象(面向对象),成都传智播客 ,Javascript面向对象概述,Javascript是一种面向(基于)对象的动态脚本语言,是一种基于对象(Object)和事件驱动(Event

2、Driven)并具有安全性能的脚本语言。他具有面向对象语言所特有的各种特性,比如封装、继承及多态等。但对于大多数人说,我们只把javascript做为一个函数式语言,只把他用于一些简单的前端数据输入验证以及实现一些简单的页面动态效果等,我们没能完全把握动态语言的各种特性。 在很多优秀的Ajax框架中,比如ExtJS、JQuery等,大量使用了javascript的面向对象特性,要使用好ext技术,javascript的高级特性,面向对象语言特性是我们必须完全把握的。,成都传智播客 ,Javascript的相关知识,Javascript的发展历程 Javascript的三大组成部分 ECMASc

3、ript 语法数据类型语句关键字保留字操作符对象 DOM(Document Object Model) BOM(Browser Object Model) JavaScript灵活特性探讨,成都传智播客 ,Javascript中的数据类型,基本数据类型 数字(Numbers) 字符串(Strings) 布尔Boolean 特殊值(null、undefined、NaN)。 对象类型Object 对象属于复杂的数据类型,对象下面可以包含基本类型、对象、函数等,数组是一种对象类型。对于javascript来说,可以说一切都是对象,包括类!。 var c=new Object();,成都传智播客 ,程

4、序流程控制,顺序结构 if条件选择语句 switch选择语句 while循环语句 do while语句 for循环语句 break与continue语句,成都传智播客 ,for.in循环语句,for(变量 in 集合或对象) 执行语句块 , var as= 1,4,5,6,output=“; for(var x in as) output += “ x= “ + asx; alert(output); ,var as=id:5,name:test; for(var x in as) output += x+“=“+asx; alert(output);,成都传智播客 ,逻辑运算符,& 逻辑与,

5、当左右两边操作数都为true时,返回值为true,否则返回false。 | | 逻辑或,当左右两边操作数都为false时,返回其中第一个不为false的值或者false。 !逻辑非,当操作数为true时,返回值为false,否则返回true。 注意: 在逻辑运算中,0、“、false、null、undefined、NaN均表示false。,成都传智播客 ,函数的定义及调用,定义一个函数的格式如下:function 函数名(参数列表)程序代码 return 表达式;,var msg = “全局变量“;function square(x,y)var sum;sum = x*x + y*y;retu

6、rn sum;function show()var msg = “局部变量“;alert(msg);/var sum;alert(“sum=“ + sum);sum=square(2,3);alert(“sum=“ + sum);show(); ,undefined,alert(“sum=“ + square(2,3);,对函数进行调用的几种方式: 函数名(传递给函数的参数1,传递给函数的参数2,.) 变量 = 函数名(传递给函数的参数1,传递给函数的参数2,.) 对于有返回值的函数调用,也可以在程序中直接使用返回的结果,例如:alert(“sum=“ + square(2,3); 不指定任何

7、函数值的函数,返回undefined。,成都传智播客 ,函数的参数可变性(arguments),function sum()var s= 0;for(var i=0; i 最多255个。通过函数对象的length可以返回函数希望提供的参数个数。,成都传智播客 ,使用Function类创建函数,创建动态函数的基本语法格式:var varName = new Function(argument1,.,lastArgument); 说明:所有的参数都必须是字符串型的,最后的参数必须是这个动态函数的功能程序代码。 例子:var square = new Function (“x“,“y“,“var s

8、um;sum= x*x + y*y;return sum;“);alert(square(3,2);var alsoDoSquare = doAdd;alert(alsoDoSquare (3,2); ,成都传智播客 ,闭包(closure),Javascript闭包就是在另一个作用域中保存了一份它从上一级函数或作用域取得的变量(键值对),而这些键值对是不会随上一级函数的执行完成而销毁。 这样在执行完var c=a()后,变量c实际上是指向了函数b,b中用到了变量i,再执行c()后就会弹出一个窗口显示i的值(第一次为1)。这段代码其实就创建了一个闭包,为什么?因为函数a外的变量c引用了函数a内

9、的函数b,就是说:当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个我们通常所谓的“闭包”。,function a() var i = 0; function b() alert(+i); return b; var c = a(); c(); 闭包的作用就是在a执行完并返回后,闭包使得Javascript的垃圾回收机制GC不会收回a所占用的资源,因为a的内部函数b的执行需要依赖a中的变量。,成都传智播客 ,函数的作用域及this,1、在函数或方法中可以使用this来引用函数所在的当前对象 2、当没有明确指定函数的当前对象时,作用域为window 3、可以使用call及apply

10、来动态改变函数执行的作用域,var b1=v:“this is b1“; var b2=v:“this is b2“; function b(d)alert(this.v); b();/输出: window.b();/输出: b.call(b1);/输出: b.apply(b2);/输出:,成都传智播客 ,JavaScript中的系统函数(Global类),encodeURI及encodeURIComponent方法返回对一个URI字符串编码后的结果。 decodeURI及decodeURIComponent()方法将一个已编码的URI字符串解码成最初始的字符串并返回。 parseInt方法将

11、一个字符串按指定的进制转换成一个整数,语法格式为:parseInt(numString, radix)。如果没有指定第二个参数,则前缀为 0x 的字符串被视为十六进制,前缀为 0 的字符串被视为八进制,所有其他字符串都被视为是十进制。 parseFloat方法将一个字符串转换成对应的小数。 isNaN方法用于检测parseInt和parseFloat方法的返回值是否为NaN。 escape方法返回对一个字符串进行编码后的结果字符串。所有空格、标点、重音符号以及任何其他非 ASCII 字符都用 %xx 编码替换,其中xx等于表示该字符的Unicode编码的十六进制数,字符值大于255的字符以%u

12、xxxx格式存储。 unescape 方法将一个用escape方法编码的结果字符串解码成原始字符串并返回。 eval 方法将其中的参数字符串作为一个JavaScript表达式执行。,成都传智播客 ,JavaScript的内部类,动态对象使用“对象实例名.成员”的格式来访问其属性和方法。 静态对象直接使用“对象名.成员”的格式来访问其属性和方法。Object类(对象) Number类(对象) String类 (对象) Math类(对象) Date类(对象) toString方法,成都传智播客 ,Object类,Object类是所有javascript类的基类,提供了一种创建自定义对象的简单方式,

13、不需要程序员再定义构造函数。,主要属性: constructor-对象的构造函数 prototype-获得类的prototype对象,static性质 主要方法: hasOwnProperty(property)是否属于本类定义的属性 isPrototypeOf(object)是否是指定类的prototype propertyIsEnumerable(property)是否可例举的属性 toString()返回对象对应的字符串 valueOf()返回对象对应的原始类型值,function getAttributeValue(attr)alert(personattr);var person =

14、 new Object();person.name = “zs“;person.age = 18;getAttributeValue(“name“);getAttributeValue(“age“); ,成都传智播客 ,Number类,Number类代表数据类,包含一些静态的成员及数值处理的方法。,静态属性: MAX_VALUE、MIN_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY、NaN 主要方法: toFixed(n)取小数位数,自动四舍五入 toPrecision(n)是否是指定类的prototype propertyIsEnumerable(pro

15、perty)是否可例举的属性 toString()返回对象对应的字符串 valueOf()返回对象对应的原始类型值,var oNumberObject = new Number(99); alert(oNumberObject.toFixed(2); /outputs “99.00” ,成都传智播客 ,String类,length属性 anchor、big、bold、fontcolor、link等方法 charAt方法注意:一个字符串中的第一个字符的索引位置为0,依次类推。 charCodeAt方法注意:返回的结果是字符的unicode编码。 concat方法,连接字符串 indexOf方法及lastIndexOf方法 match、search方法 replace、split方法 slice方法说明:str1.slice(0)和str1.slice(0,-1)都是返回整个字符串。 substr、substring方法substring方法返回的内容不包含结束位置的字符。 toLowerCase、toUpperCase 方法,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号