JavaScript基础教程PPT课件_第1页
JavaScript基础教程PPT课件_第2页
JavaScript基础教程PPT课件_第3页
JavaScript基础教程PPT课件_第4页
JavaScript基础教程PPT课件_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

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

文档简介

1、2020/6/24,1,Web基础之一JavaScript基础,2020/6/24,2,目标,理解什么是 JavaScript 如何将 JavaScript 嵌入到 HTML 中 理解变量、数据类型和运算符 掌握 if-else 和 switch 语句 掌握函数 掌握内置对象,2020/6/24,3,什么是JavaScript,脚本程序:嵌入在HTML文件中,提供了和用户进行交互的能力; 常见的脚本语言:VBScript,javascript JavaScript是NetScape公司的产品 提供用户交互 动态更改内容 数据验证,2020/6/24,4,将JavaScript嵌入网页,可以将

2、JavaScript 语句插入 HTML 文档,方式 如下: 使用 标签将语句嵌入文档 将 JavaScript 源文件链接到 HTML 文档中 将脚本代码作为HTML标签的属性值,2020/6/24,5,使用 Script 标签,JavaScript 代码, document.write(欢迎来到 JavaScript 世界); 尽情享受学习的快乐! ,脚本代码,设置语言,2020/6/24,6,使用外部 JS 文件,外部 JavaScript 文件可以链接到 HTML 文档中 SCRIPT 标签的 SRC(源文件)属性可用于包括此外部文件,2020/6/24,7,使用外部 JS 文件,Ja

3、vaScript 代码 (test.htm), 使用外部文件 以上文本是通过访问外部 JavaScript 文件显示的 ,2020/6/24,8,将脚本代码作为HTML标签的属性值,在href属性中必须指明是javascript 当前时间 在onclick事件属性中可以不用指明是javascript ,把script脚本作为属性值.html,2020/6/24,9,Javascript的基本格式,区分大小写 以;作为语句结束符号(;可加可不加) 以/或/* */组为注释 Javascript的数据类型: 基本类型:存储在栈 引用类型:是存储在堆中的对象。,2020/6/24,10,Javasc

4、ript是弱类型的语言,字符串,地址,null,布尔值,数字,undefined,对象,对象,对象,对象,对象,栈,堆,2020/6/24,11,Javascript的数据类型,2020/6/24,12,变量,Javascript采用弱类型的变量形式,即在声明时无需指定变量类型,在赋值的时候自动指定; 变量名必须以字母或下划线(_)开头 变量可以包含数字、从 A 至 Z 的大小写字母 JavaScript 区分大小写,即变量 myVar、 myVAR 和 myvar 是不同的变量,2020/6/24,13,声明变量,var a; “var” 用于声明变量的关键字 “a” 变量名,同时声明和初始

5、化变量 var a= 10;,a = 10;,声明变量,声明多个变量 var x, y, z = 10;,赋值,不声明变量,直接使用 x = 10;,2020/6/24,14,typeof运算符号,Typeof对变量的运算结果为以下之一: Undefined Boolean Number String Object,typeof(null)结果为object,此为历史遗留的错误。,观察以下alert的结果 var iNum ; alert(typeof(null) ; alert(typeof(iNum) ; iNum = 10 ; alert(typeof(iNum) ; var bFlag

6、 = true; alert(typeof(bFlag) ; var aStu = new Array() ; alert(typeof(aStu) ; alert(typeof(hello) ;,2020/6/24,15,观察以下运行结果,var otemp ; /var otemp2 ; alert(typeof(otemp) ; alert(typeof(otemp2) ; alert(otemp=undefined) ; alert(otemp2=undefined) ;/会导致错误,因为没有定义过的变量只有typeof运算符可以使用,其他运算符都会导致错误。,2020/6/24,16

7、,声明变量, 使用变量 var x; x=prompt(淘宝网竟拍,请出一口价,1) ; document.write(拍卖价格+x+) / +用来连接多个字符串 document.write(恭喜您,您以最高价拍卖成功!); alert(欢迎下次光临!); ,定义变量,赋 值,输 出,prompt(“提示信息”,”默认值”) 将弹出提示对话框,接受用户的输入。点击确定返回输入的字符串,点击取消反馈空字符串。,2020/6/24,17,变量 a、b 和 c 只能 在其各自的函数中 被访问,变量的作用域,脚本,函数function1 局部变量a,函数function2 局部变量b,函数funct

8、ion3 局部变量c,可由函数 1、函数 2 和函数 3 访问,全局变量 gg,2020/6/24,18,转义字符,2020/6/24,19, var x=100; var y; var z; document.write(竞拍SONY数码相机 600万像素 +x+$起价); y=prompt(加多少银子?,1); z=x+y; alert(您最终的出价n+z+$); /”n”用于换行显示 ,Prompt函数返回输入的字符串,“+”号的用法-1,10020 ? bug,200,2020/6/24,20, var x=100; var y; var z; document.write(竞拍SON

9、Y数码相机 600万像素 +x+$起价); y=prompt(加多少银子?,1); z=x+parseFloat( y ); alert(您最终的出价n+z+$); /”n”用于换行显示 ,parseFloat( )函数将字符串转换为float数据 parseInt( )函数将字符串转换为int数据 如果转换失败,返回NaN值(not a number) 使用isNaN(z)判断是否为NULL,“+”号的用法-2,2020/6/24,21,类型转换转换为字符串,在javascript中数字、字符串和boolean都是伪对象,因此他们都有toString方法。 var sColor = red

10、; alert(sColor.toString() ; var bFound = true ; alert(bFound.toString() ; var iNum1 = 10 ; var iNum2 = 10.6 ; alert(iNum1) ; alert(iNum2) ; alert(iNum1.toString(2) ; alert(iNum1.toString(8) ; alert(iNum1.toString(16) ; alert(iNum2.toString(8) ; alert(iNum2.toString(16) ;,2020/6/24,22,类型转换转换为数字,parse

11、Int和parseFloat:其解析方式为从位置0开始查看直到找到无法解析的字符。,var iNum1 = parseInt(123abc) ; var iNum2 = parseInt(0 xa) ; var iNum3 = parseInt(013) ; var iNum4 = parseInt(blue) ; alert(iNum1) ; alert(iNum2) ; alert(iNum3) ; alert(iNum4) ;,var iNum1 = parseInt(10,2) ; var iNum2 = parseInt(10,8) ; var iNum3 = parseInt(10

12、,16) ; alert(iNum1) ; alert(iNum2) ; alert(iNum3) ;,2020/6/24,23,强制类型转换,Boolean(value) Number(value) String(value),var b1 = Boolean() ; var b2 = Boolean(hello) ; var b3 = Boolean(100) ; var b4 = Boolean(null) ; var b5 = Boolean(0) ; var b6 = Boolean(new Object() ; alert(b1=+b1) ; alert(b2=+b2) ; ale

13、rt(b3=+b3) ; alert(b4=+b4) ; alert(b5=+b5) ; alert(b6=+b6) ;,非0、非空串、非空对象为true, 其他false,2020/6/24,24,强制类型转换,Boolean(value) Number(value) String(value),alert(Number(false)=+Number(false) ; alert(Number(true)=+Number(true) ; alert(Number(undefined)=+Number(undefined) ; alert(Number(null)=+Number(null)

14、; alert(Number(3.6)=+Number(3.6) ; alert(Number(3.3.3)=+Number(3.3.3) ; alert(Number(new Object()=+Number(new Object() ;,Number转换和parseInt,parseFloat转换的不同之处在于Number要求整个值都要有效,2020/6/24,25,引用类型,Object类 与java中的Object类相似 具体有: constructor,prototype,tostring,valueof等方法 New Object() 等价于 ;,2020/6/24,26,属性名,

15、属性值,name,“zhangsan”,age,123,getName,function() alert() ; ,从JavaScript的内部实现的角度来看问题,一个JavaScript对象就是属性集的组合。 内部如何组织这些属性集的呢?使用类似于java中的Map,?为什么使用for循环遍历属性的时候,没有找到constructor属性,2020/6/24,27,引用类型,Boolean:一般不用 Number为基本数字类型的包装类 有用的方法,var oNum = new Number(99) ; alert(oNum.toFixed(2); oNum = new Nu

16、mber(999) ; alert(oNum.toExponential(2) ; oNum = new Number(9999) ; alert(oNum.toPrecision(6) ;,2020/6/24,28,运算符,2020/6/24,29,算术运算符,运算符示例.html,2020/6/24,30,比较运算符,比较运算符 2-1,2020/6/24,31,运算符,逻辑运算符,2020/6/24,32,等号运算符规则,和!在进行运算之前都会进行类型转换,规则如下: 如果一个运算数是Boolean则在检查相等之前先把他转换为数字值。False转换为0,true转换为1 如果一个运算数是

17、字符串,另一个是数字,则在检查相等之前先把字符串转换为数字值。 如果一个运算数是字符串,另一个是对象,则在检查相等之前先把对象调用toString方法转换为字符串。 如果一个运算数是对象,另一个是数字,则在检查相等之前先把对象转换为数字值。 值null和undefined相等 如果两个都是对象,则比较引用值,alert(null = undefined) ; alert(5 = 5) ; alert(false = 0 ) ;,2020/6/24,33,全等号,在作比较之前,不作类型转换,alert(null = undefined) ; alert(5 = 5) ; alert(false

18、= 0 ) ;,2020/6/24,34,条件语句用于测试条件。,if(条件) JavaScript代码; ,语法:,if 语句,如果要执行多个语句,必须将这些语句放在一对大括号 ( ) 内。但如果只要执行一个语句,则可以省略大括号,2020/6/24,35, function calcu() var numb1= document.calc.num1.value; var numb2= document.calc.num2.value; if (numb1!=) .其他代码略,同上例,2020/6/24,36,if else 语句 2-1,if(条件) /JavaScript代码; else

19、 /JavaScript代码; ,语法:,2020/6/24,37,switch 语句,switch (表达式) case 常量1 : JavaScript语句; break; case 常量2 : JavaScript语句; break; . default : JavaScript语句; ,语法:,swtich示例.html,2020/6/24,38,数组,声明数组 var 数组名 = new Array(数组大小); 例: var emp = new Array(3) 添加元素 emp0 = “AA; emp1 = “BB; emp2 = “CC;,emp,也可以声明数组并赋初值: 例:

20、 var emp=new Array(“AA”,“BB”,“CC”);,2020/6/24,39, 使用数组 var emp = new Array(3); emp0 = Ryan Dias; emp1 = Graham Browne; emp2 = David Greene; document.write(数组emp中的数据为:); document.write(emp0+); document.write(emp1+); document.write(emp2+); ,数组,2020/6/24,40,数组,常用属性 length :返回数组中元素的个数 ? 应该是最大下标值+1 常用方法,

21、2020/6/24,41, var emp = new Array(3); emp0 = Ryan Dias; emp1 = Graham Browne; emp2 = David Greene; emp.sort( ); document.write(“排序结果是:); document.write(emp0+); document.write(emp1+); document.write(emp2+); var x = emp.join() ; document.write(x) ; ,数组排序,2020/6/24,42,循环,for循环 do-while while,For 循环演示.h

22、tml,Do-while循环演示.html,2020/6/24,43,函数,定义函数: function 函数名( 参数1,参数2, ) 语句; 调用函数: 函数调用一般和表单元素的事件一起使用,调用格式为: 事件名“函数名” ;,function sum ( one, two) var result = one + two; return result; ,表示单击此按钮时,调用函数sum( )执行,2020/6/24,44,JavaScript 函数,内置函数 eval 函数: 用于计算字符串表达式的值 isNaN 函数:用于验证参数是否为 NaN(非数字),Eval示例.html,202

23、0/6/24,45,函数的应用,num1,num2,result,函数.html,2020/6/24,46,Javascript函数特性无重载,但在javascript中定义两个名字相同的函数不会引发错误。他将会调用后定义的函数。,function doAdd(iNum) alert(iNum + 1000) ; function doAdd(iNum) alert(iNum + 100) ; doAdd(100) ;,2020/6/24,47,Javascript函数特性 利用arguments模拟重载,Javascript不会验证传递给函数的参数的个数是否等于函数定义的参数个数。开发者定义

24、的函数在调用时可以接受任意的参数,不会引发错误。遗漏的参数以undefined传递给函数,多余的参数被忽略,但可以使用arguments数组接受。,function sayHello() if (arguments0 = exit) return ; alert(arguments0) ; sayHello() ; sayHello(zhangsan) ; sayHello(exit) ;,2020/6/24,48,Javascript函数特性 利用arguments模拟重载,function doAdd() if (arguments.length = 1) alert(arguments0

25、) ; else if (arguments.length = 2 ) alert(arguments0 + arguments1) ; doAdd(30) ; doAdd(30,30) ;,2020/6/24,49,Function类,Var function_name = new Function(arg1,arg2,argN,function_body) ; 例: var sayHello = new Function(sName,alert(Hello + sName ) ; sayHello(zhangsan) ;,2020/6/24,50,借助Function来理解函数,var d

26、oAdd = new Function(iNum,alert(iNum + 100) ; doAdd = new Function(iNum,alert(hello + iNum) ; doAdd(1) ; 由以上可见,函数名只是指向函数对象的一个引用值,同样的,我们也可以使用不同的变量指向同一个函数。,2020/6/24,51,借助Function来理解函数,var doAdd = new Function(iNum,alert(iNum + 100) ; doAdd = new Function(iNum,alert(hello + iNum) ; var otherAdd = doAdd

27、 ; doAdd(1) ; otherAdd(9) ;,2020/6/24,52,把函数作为参数传给其他函数,var sayHello = new Function(sName,sMessage,alert(Hello + sName +, +sMessage) ; function callOtherFunc(fnCall,vArg1,vArg2) fnCall(vArg1,vArg2) ; callOtherFunc(sayHello,“zhangsan ”,“ good”) ; alert(callOtherFunc.toString() ;,2020/6/24,53,函数:指针,fun

28、ction myFunction() alert(Old); myFunction(); / 输出 Old myFunction=function() alert(New); ; myFunction(); / 输出 New,可见,函数的名字相当于一个指针,2020/6/24,54,函数:指针,function myFunction() alert(Old); var savedFuncion=myFunction; myFunction=function() alert(New); ; myFunction(); / 输出 New savedFuncion(); / 输出 Old,2020/

29、6/24,55,基于对象的Javascript,JavaScript中的对象是由属性(properties)和方法(methods)两种基本的元素的构成的。前者是对象在实施其所需要行为的过程中,实现信息的装载单位,从而与变量相关联;后者是指对象能够按照设计者的意图而被执行,从而与特定的函数相联。 对象要真正地被使用,可采用以下几种方式获得: 引用JavaScript内部对象; 由浏览器环境中提供; 创建新对象。,2020/6/24,56,Javascript的内部对象,Object、Array、Function、String、Boolean、Number、Date、RegExp、Math、Gl

30、obal、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError,2020/6/24,57,对象操作语句for.in,格式如下: For(属性名 in 已知对象名) 优点:无需知道对象中属性的个数即可进行操作。 例:,Function showData(object) for (var X=0; X30;X+) document.write(objecti); ,Function showData(object) for (var x in object) document.write(objecti);

31、 ,2020/6/24,58,对象操作语句 with语句,在该语句体内,任何对变量的引用被认为是这个对象的属性,以节省一些代码。 with (object) . 所有在with语句后的花括号中的语句,都是在后面object对象的作用域的。 with (o) name = 李四 ; age = 100 ; height = 12.3 ; ,2020/6/24,59,再论数组,/定义方法1 var aColors = new Array() ; aColors0 = red ; aColors1 = green ; aColors2 = blue ; for (var x in aColors)

32、alert(aColorsx) ; /定义方法2 var aColors2 = new Array(red,green,blue) ; /定义方法3 var aColors3 = red,green,blue ;,2020/6/24,60,再论数组,数组的大小是动态变化的 var aColors3 = red,green,blue ; aColors6 = gray ; for (var x = 0 ; x aColors.length ; x+) alert(aColorsx) ; for (var x in aColors) alert(aColorsx) ; ,2020/6/24,61,

33、再论数组,数组的toString方法和valueOf方法 var aColors3 = red,green,blue ; aColors10 = gray ; alert(aColors.toString() ; 字符串和数组之间的转换:split var aColors3 = red,green,blue ; var sString = aColors.toString() ; alert(sString) ; var aColors4 = sString.split(,) ; for (var i = 0 ; i aColors4.length ; i+ ) alert(aColors4i

34、) ; ,2020/6/24,62,再论数组,Javascript中,可以把数组看成是一个栈 var aColors = new Array() ; aColors.push(red) ; aColors.push(green) ; aColors.push(blue) ; for (var i = 0 ; i =0 ,Date对象,获得当前日期和时间,获得小时,即当前是几点,判断上午、下午还是晚上,月份数字011,注意1,日期对象 1.htm,2020/6/24,76,Date对象,setTimeout的用法: setTimeout(“调用的函数”,”定时的时间”) 例: var myTim

35、esetTimeout(”disptime( )”,1000); clearTimeout(myTime);,本例的时间可以采用定时显示,使用定时器函数,每隔1秒调用disptime( )函数显示时间,每隔1000毫秒调用函数disptime( )执行,关闭定时器,2020/6/24,77,Date 对象10-8,var myTime = setTimeout(disptime( ),1000); 设置定时器每隔1秒(1000毫秒),调用函数disptime( )执行,刷新时钟显示,2020/6/24,78,Date对象, ,设置样式:无边框的文本框,Onload ( ) 事件,页面加载就调用

36、函数:disptime (显示时间),2020/6/24,79,Date,var dDate = new Date() ; alert(dDate.toString() ; alert(dDate.toDateString() ; alert(dDate.toLocaleDateString() ; alert(dDate.toLocaleTimeString() ; dDate = new Date(2007,7,7) ;,2020/6/24,80,this,this这个词在function中有特别的意义。它指向了调用函数的那个对象。 var oCar = new Object() ; oC

37、ar.color = red ; oCar.showColor = function () alert(this.color) ; ; oCar.showColor() ;,2020/6/24,81,function showColor() alert(this.color) ; ; var oCar1 = new Object() ; oCar1.color = red ; oCar1.showColor = showColor ; var oCar2 = new Object() ; oCar2.color = blue ; oCar2.showColor = showColor ; oC

38、ar1.showColor() ; oCar2.showColor() ;,this这个词在function中有特别的意义。它指向了调用函数的那个对象。,2020/6/24,82,this关键字,function Employee(name, salary, mySupervisor) =name; this.salary=salary; this.supervisor=mySupervisor; var boss=new Employee(John, 200); var manager=new Employee(Joan, 50, boss); var teamLeader

39、=new Employee(Rose, 50, boss); alert(+ is the supervisor of +); alert(+s supervisor is +);,2020/6/24,83,定义类或对象的方法工厂方法,前提:对象的属性可以在对象对象创建后动态定义。,var oCar = new Object() ; oCar.color = red ; oCar.doors = 4 ; oCar.mpg = 20 ; oCar.showC

40、olor = function () alert(this.color) ; ; oCar.showColor(oCar) ;,function createCar() var oCar = new Object() ; oCar.color = red ; oCar.doors = 4 ; oCar.mpg = 20 ; oCar.showColor = function () alert(this.color) ; ; return oCar ; var oCar = createCar() ; oCar.showColor() ;,2020/6/24,84,function create

41、Car(sColor,iDoors,iMpg) var oCar = new Object() ; oCar.color = sColor ; oCar.doors = iDoors ; oCar.mpg = iMpg ; oCar.showColor = function () alert(this.color) ; ; return oCar ; var oCar = createCar(black,5,30) ; oCar.showColor() ;,function showColor() alert(this.color) ; function createCar(sColor,iD

42、oors,iMpg) var oCar = new Object() ; oCar.color = sColor ; oCar.doors = iDoors ; oCar.mpg = iMpg ; oCar.showColor = showColor ; return oCar ; var oCar = createCar(yellow,3,6) ; oCar.showColor() ;,2020/6/24,85,函数示例6.html,函数示例7.html,2020/6/24,86,定义类或对象的方法构造函数方式,function Car(sColor,iDoors,iMpg) this.co

43、lor = sColor ; this.doors = iDoors ; this.mpg = iMpg ; this.showColor = function () alert(this.color) ; ; var oCar1 = new Car(red,5,6) ; var oCar2 = new Car(blue,8,9) ; oCar1.showColor() ; oCar2.showColor() ; alert(typeof Car) ; alert(typeof new Car() ;,当这个函数创建的时候有一个同名的对象也被创建。,2020/6/24,87,函数:原型,fun

44、ction Fish(name, color) =name; this.color=color; Ftotype.livesIn=water; Ftotype.price=20;,var fish1=new Fish(mackarel, gray); var fish2=new Fish(goldfish, orange); var fish3=new Fish(salmon, white);,for (var i=1; i=3; i+) var fish=eval(fish+i); / 只是取得指向这条鱼的指针 alert(+,

45、+fish.color+,+fish.livesIn+,+fish.price); ,输出:mackarel, gray, water, 20 goldfish, orange, water, 20 salmon, white water, 20,当一个对象被创建时,这个构造函数将会把它的属性prototype赋给新对象的内部属性_proto_。这个_proto_被这个对象用来查找它的属性。,2020/6/24,88,用prototype给对象添加函数,function Employee(name, salary) =name; this.salary=salary; Emp

46、totype.getSalary=function getSalaryFunction() return this.salary; Etotype.addSalary=function addSalaryFunction(addition) this.salary=this.salary+addition; ,2020/6/24,89,用prototype给对象添加函数,var boss1=new Employee(Joan, 200000); var boss2=new Employee(Kim, 100000); var boss3=new Empl

47、oyee(Sam, 150000); 输出: alert(boss1.getSalary(); / 输出 200000 alert(boss2.getSalary(); / 输出 100000 alert(boss3.getSalary(); / 输出 150000,2020/6/24,90,定义类或对象的方法原型方式,function Car(sName) C = sName ; Ctotype.showName = function () alert() ; var oCar = new Car(benz) ; oCar.sh

48、owName() ; var yourCar = new Car(haha) ; yourCar.showName() ; oCar.showName() ; /输出”haha”,每一个构造函数都有一个属性叫做原型(prototype)。这个属性非常有用:为一个特定类声明通用的变量或者函数。,原型方式的缺点: 1、无法参数化的构造对象; 2、修改一个引用属性会影响另一个对象,2020/6/24,91,定义类或对象的方法原型方式,function Car() ; Ctotype.color = red ; Ctotype.doors = 4 ; Ctotype

49、.mpg = 23 ; Ctotype.drivers = new Array(mike,tom) ; Ctotype.showColor = function () alert(this.color) ; var oCar1 = new Car() ; var oCar2 = new Car() ; oCar1.showColor() ; oCar2.showColor() ; alert(oCar2.drivers) ; oCar1.drivers.push(jim) ; /改变oCar1.drivers,结果确把oCar2也改变了 alert(oCar2.driv

50、ers) ;,每一个构造函数都有一个属性叫做原型(prototype)。这个属性非常有用:为一个特定类声明通用的变量或者函数。,原型方式的缺点: 1、无法参数化的构造对象; 2、修改一个引用属性会影响另一个对象,2020/6/24,92,定义类或对象的方法混合构造函数和原型方式,function Car(sColor,iDoors,iMpg,aDrivers) this.color = sColor ; this.doors = iDoors ; this.mpg = iMpg ; this.drivers = aDrivers ; ; Ctotype.showColor = fu

51、nction () alert(this.color) ; var oCar1 = new Car(red,5,3,new Array(Tom,Jack) ; var oCar2 = new Car(blue,5,3,new Array(Mike,Jim) ; oCar1.showColor() ; oCar2.showColor() ; alert(oCar2.drivers) ; oCar1.drivers.push(Jim) ; alert(oCar2.drivers) ;,构造函数的方式定义属性; 用原型方式定义方法; 推荐使用!,2020/6/24,93,定义类或对象的方法动态原型方

52、式,function Car(sColor,iDoors,iMpg,aDrivers) this.color = sColor ; this.doors = iDoors ; this.mpg = iMpg ; this.drivers = aDrivers ; if (typeof Car._initialized = undefined) Ctotype.showColor = function () alert(this.color) ; Car._initialized = true ; ; var oCar1 = new Car(red,5,3,new Array(Tom

53、,Jack) ; var oCar2 = new Car(blue,5,3,new Array(Mike,Jim) ; oCar1.showColor() ; oCar2.showColor() ; alert(oCar2.drivers) ; oCar1.drivers.push(Jim) ; alert(oCar2.drivers) ;,2020/6/24,94,进一步认识prototype,问题:资源耗费太大 var str = hello ; str += world ; 因此:优点是资源耗费较小,但是语义不够清楚。 var arr = new Array() ; arr0 = hel

54、lo ; arr1 = world ; var str1 = arr.join() ; alert(str1) ;,2020/6/24,95,进一步认识prototype,function StringBuffer() this._strings = new Array() ; StringBtotype.append = function (str) this._strings.push(str) ; StringBtotype.toString = function () return this._strings.join() ; var buffer

55、= new StringBuffer() ; buffer.append(hello ) ; buffer.append(world) ; alert(buffer.toString() ;,2020/6/24,96,进一步认识prototype,为本地类创建新的方法 Ntotype.toHexString = function () return this.toString(16) ; var iNum = 15 ; alert(iNum.toHexString() ;,2020/6/24,97,通过对象直接初始化,通过对象直接初始化.html,2020/6/24,98,自

56、定义对象嵌套,自定义对象嵌套.html,2020/6/24,99,继承-对象冒充,function ClassA(sColor) this.color = sColor ; /使用this关键字给属性和方法赋值 this.showColor = function () alert(this.color) ; function ClassB(sColorr) this.newMethod = ClassA ;/注意这不是把ClassA看成构造函数,而是看成了普通函数 this.newMethod(sColor) ;/调用时,ClassA中的this实际上是ClassB的对象 delete this.newMethod ; var b = new ClassB(red) ; b.showColor() ;,2020/6/24,100,继承-对象冒充,function ClassA(sColor) this.color = sColor ; /使用this关键字给属性和方法赋值 this.showColor = function () alert(this.color) ; function ClassB(sColor,sName) this.ne

温馨提示

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

评论

0/150

提交评论