javascriptWord文档下载推荐.docx
- 文档编号:19982559
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:33
- 大小:29.90KB
javascriptWord文档下载推荐.docx
《javascriptWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《javascriptWord文档下载推荐.docx(33页珍藏版)》请在冰豆网上搜索。
oTempCar.mpg=23;
oTempCar.showColor=function()
alert(this.color)
};
returnoTempCar;
}
varoCar1=createCar();
varoCar2=createCar();
这里,前面的所有代码都包含在createCar()函数中,此外还有一行额外的代码,返回Car对象作为函数值。
调用此函数时,将创建新对象,并赋予它所有必要的属性,复制出一个前面说明的car对象。
使用该方法,可以容易地创建car对象的两个版本,他们的属性完全一样。
当然,还可以修改creatCar()函数,给它传递各个属性的默认值,而不是赋予属性默认值:
FunctioncreateCar(sColor,iDoors,iMpg)
VaroTempCar=newObject();
oTempCar.color=sColor;
oTempCar.doors=iDoors;
oTempCar.mpg=iMpg;
//该函数属于具体的对象,给具体对象动态添加的一个函数
oTempCar.showColor=function(){alert(this.color)};
returnoTempCar;
VaroCar1=createCar("
4,23);
VaroCar2=createCar("
blue"
2,26);
oCar1.showColor();
//输出"
oCar2.showColor();
给createCar()函数加上参数,即可为要创建的car对象的color、doors和mpg属性赋值。
使这两个对象具有相同的属性,却有不同的属性值。
但这里有个问题:
每次调用函数createCar(),都要创建新函数showColor(),意味着每个对象都有自己的showColor()方法版本。
事实上,每个对象用的都是同一段代码。
这样的定义方法还有一个如下的变形:
functionCar(sColor,iDoors,iMpg)
{
this.color=sColor;
this.doors=iDoors;
this.mpg=iMpg;
this.showColor=function(){alert(this.color)};
varoCar1=newCar("
varoCar2=newCar("
这个方法和上一个方法有个一样的缺陷:
重复的创建了showColor()函数。
为了解决这个缺陷我们可以用下面的方法。
1.2原型方式
该方法利用了对象的prototype属性。
用空构造函数来设置类名,然后所有的属性和方法都被直接赋予prototype属性:
functionCar()
Car.prototype.color="
Car.prototype.doors=4;
Car.prototype.mpg=23;
Car.prototype.showColor=function()
VaroCar1=newCar();
VaroCar2=newCar();
使用这个方法可以解决在内存中重复创建showColor()函数问题,但又会有新的问题,考虑下面的例子:
Car.prototype.drivers=newArray("
Mike"
"
Sue"
);
Car.prototype.showColor=function(){alert(this.color)};
//改变颜色
oCar1.color="
oCar1.drivers.push("
Matt"
//向数组中压进去一个元素,该元素位于数组的最后
alert(oCar1.drivers);
//输出"
Mike,Sue,Matt"
alert(oCar2.drivers);
这里,属性drivers是指向Array对象的指针。
改变指针指向的内容,所有的实例都会改变。
看来这种方法也不可取
1.3混合方式
这种方式就是用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方法)。
结果所有的函数只创建一次,而每个对象都具有自己的对象属性实例。
functionCar(sColor,iDoors,iMpg)
this.drivers=newArray("
//利用原型适合声明类的方法,在生成的多个对象中该方法仅声明一次
3,25);
Mike,Sue"
这种方式是JavaScript主要采用的方式,它具有其他方式的特性,却没有它们的缺陷。
在实际编程中应用的也是最多了。
1.4混合方式
另外还有JSON创建方式。
其创建的方式如下:
varCar=
color:
"
doors:
4,
mpg:
23,
drivers:
[{name:
age:
20,Married:
false},{name:
30,Married:
true}],
showColor:
function(){alert(this.color);
这种创建对象的方式也比较优雅。
可作为Ajax返回的文本,然后用eval()函数将其还原成一个对象。
著名的脚本框架Dwr,JQuery等就有专门接收返回文本而后转化为JSON对象的异步通信方法。
二、有关对象操作语句
JavaScript不是一纯面向对象的语言,它设有提供面向对象语言的许多功能,因此JavaScript设计者之所以把它你”基于对象”而不是面向对象的语言,在JavaScript中提供了几个用于操作对象的语句和关键字及运算符。
1)、for...in语句
格式如下:
for(对象属性名in已知对象名)
说明:
该语句的功能是用于对已知对象的所有属性进行操作的控制循环。
它是将一个已知对象的所有属性反复置给一个变量;
而不是使用计数器来实现的。
该语句的优点就是无需知道对象中属性的个数即可进行操作。
下面的for语句是通过数组下标顺序值,来访问每个对象的属性
for(varj=0;
j<
10;
j++)
案理:
<
html>
head>
title>
test.html<
/title>
functionshowData(object)
for(varx=0;
x<
3;
x++)
document.write(object[x]);
vararr=newArray('
1'
'
2'
3'
showData(arr);
/head>
body>
/body>
/html>
该函数是通过数组下标顺序值,来访问每个对象的属性,使用这种方式首先必须知道数组的下标值,否则若超出范围,则就会发生错误。
而使For...in语句,则根本不需要知道对象属性的个数,见下:
案理1:
循环数组元素(每次取到一个下标)
for(varpropinobject)
alert(prop);
document.write(object[prop]);
案理2:
循环对象属性(每次取到一个属性名)
test5.html<
functionpeople(name,sex,age)
{
this.name=name;
this.sex=sex;
this.age=age;
varobj=newpeople('
张三'
男'
20);
alert(obj['
name'
]);
//取对象属性的值
alert(obj.name);
//取对象属性的值
for(varpropinobj)
alert(obj[prop]);
body>
2)、with语句
使用该语句的意思是:
在该语句体内,任何对变量的引用被认为是这个对象的属性,以节省一些代码。
with(object)
...
}
所有在with语句后的花括号中的语句,都是在后面object对象的作用域的。
案例:
with应用<
functioncheck()
with(form1)
varusername_v=username.value;
if(username_v=="
"
)
alert("
用户名不能为空!
username.focus();
return(false);
return(true);
}
formname="
form1"
action="
method="
post"
onsubmit="
returncheck();
table>
tr>
td>
用户名<
/td>
inputname="
username"
/tr>
密码<
inputtype="
password"
name="
tdcolspan="
2"
align="
center"
buttontype="
submit"
提交<
/button>
reset"
重置<
/table>
/form>
3)、this关键字
this是对当前对象的引用,在JavaScript由于对象的引用是多层次,多方位的,往往一个对象的引用又需要对另一个对象的引用,而另一个对象有可能又要引用另一个对象,这样有可能造成混乱,最后自己已不知道现在引用的那一个对象,为此JavaScript提供了一个用于指定当前对象的语句this
案理:
alert(this);
//指向即将生成的对象
4)、new运算符
虽然在JavaScript中对象的功能已经是非常强大的了。
但更强大的是设计人员可以按照需求来创建自己的对象,以满足某一特定的要求。
使用new运算符可以创建一个新的对象。
其创建对象使用如下格式:
varNewobject=newObject(Parameterstable);
其中Newobject创建的新对象:
object是已经存在的对象;
parameterstable参数表;
new是JavaScript中的命令语句。
如创建一个日期新对象
varnewData=newDate();
alert(newData);
之后就可使newData作为一个新的日期对象了。
5)、对象属性的引用
对象属性的引用可由下列三种方式之一实现:
(1)使用点(.)运算符
university.name=”云南省”;
university.city=”昆明市”;
university.date=”1999”;
其中university是一个已经存在的对象,name、city、date是它的三个属性,并通过操作对其赋值。
(2)声明属性的时候用下标,可以通过对象的下标实现引用属性
university[0]=”云南省”;
university[1]=”昆明市”;
university[2]=”1999”;
通过数组形式的访问属性,可以使用循环操作获取其值。
.....
functionpeople(name,sex,age)
//下面这种方式定义属性,可以通过“for(varj=0;
2;
j++)”循环取属性
this[0]=name;
this[1]=sex;
this[2]=age;
varobject=newpeople('
functionshowuniversity(object)
document.write(object[j])
.....
若采用for...in则可以不知其属性的个数后就可以实现:
……
声明属性的时候通过下标来声明
//下面方式定义属性,可以通过“for(varpropinobject)”循环取属性
this[0]=name;
//声明属性的时候用下标
showmy(object);
functionshowmy(object)
for(varpropinobject)//循环上面方式的对象,prop为下标
docament.write(object[prop]);
注意:
在使用该形式引用属性的时候,前提是声明属性的时候也要用下标
(3)通过字符串的形式实现
university[“name”]=“云南”
university[“city”]=“昆明市”
university[“date”]="
1999"
(4)、
1、document.form1.ordermc.value
2、document.all.ordermc.value
3、document.all(“order.ordermc”).value//其中all(“”)是一个函数
4、document.getElementsByName("
order.ordermc"
)[0].value;
5、document.getElementById("
).value
在javascript中声明数组
一维数组
vararr=newArray(3);
//一维数组
vararr=newArray('
b'
c'
//一维数组(声明和数组的初始化一起进行)
vararr=['
];
vararray={'
//不可以的
二维数组
在java当中String[]ss={{'
北京'
},{2,'
上海'
},{3,'
天津'
}}
(1)在JavaScript当中不直接声明二维数组,但可以以下方式,即通过把一维数组的每个元素再声明成一个数组
vararr=newArray(3);
arr[0]=newArray('
//二维
arr[1]=newArray('
arr[2]=newArray('
取值
alert(arr[0][0]);
alert(arr[0][1]);
alert(arr[1][0]);
alert(arr[1][1]);
alert(arr[2][0]);
alert(arr[2][1]);
循环取值
for(vari=0;
i<
arr.length;
i++)
alert(arr[i][0]);
alert(arr[i][1]);
数据存放如下图
1
北京
2
上海
3
天津
(2)、还可以以以下方式直接声明二维数组:
varss=[['
],[2,'
],[3,'
]];
alert(ss[0][1]+"
---"
+ss[1][1]);
注意:
varss={{'
}};
//不能用该形式声明二维数组
常用的基本函数
(1)、alert函数:
显示一个警告对话框,包括一个确定按钮。
(2)、confirm函数:
显示一个确认对话框,包括OK、Cancel按钮。
(3)、prompt函数:
显示一个输入对话框,提示等待用户输入。
例如:
(4)、escape函数:
将字符转换成Unicode码。
(5)、unescape函数:
解码由escape函数编码的字符。
varstr="
未来蓝图软件教育"
varv=escape(str);
alert(v);
varv2=unescape(v);
alert(v2);
(6)、eval函数:
计算表达式的结果。
functionadd(v1,v2)
varv3=v1+v2;
alert(v3);
returnv3;
alert(eval("
add(1,2)"
));
(7)、isNaN函数:
测试是(true)否(false)不是一个数字。
alert(isNaN('
abc'
(8)、parseFloat函数:
将字符串转换成浮点数字形式。
(9)、parseInt函数:
将符串转换成整数数字形式(可指定几进制)。
JavaScript操作HTML的DOM树的方法与属性摘要
Dom即DoucumentObjectModule
1createElement
创建一个指定标签名的新元素节点,返回值为指向新建元素节点的引用指针。
eg)varpara=document.createElement("
p"
document.body.appendChild(para);
//追加儿子
2createTextNode()
创建一个包含着给定文本的新文本节点,返回一个指向新建文本节点的引用指针:
reference=document.createTextNode(“sdasdsas”)
参数为新建文本节点所包含的文本字符串
eg)
varmessage=document.createTextNode("
helloworld"
varcontainer=document.createElement("
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javascript