|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
那做企业软件是不是最好用J2EE?ajax 甚么是反射机制
反射机制指的是程序在运转时可以猎取本身的信息。比方一个工具可以在运转时晓得本人有哪些办法和属性。
在JavaScript中使用for(…in…)语句完成反射
在JavaScript中有一个很便利的语法来完成反射,即for(…in…)语句,其语法以下:
for(varpinobj){
//语句
}
这里varp暗示声明的一个变量,用以存储工具obj的属性(办法)称号,有了工具名和属性(办法)名,就能够利用方括号语法来挪用一个工具的属性(办法):
for(varpinobj){
if(typeof(obj[p]=="function"){
obj[p]();
}else{
alert(obj[p]);
}
}
这段语句遍历obj工具的一切属性和办法,碰到属性则弹出它的值,碰到办法则立即实行。在前面能够看到,在面向工具的JavaScript程序计划中,反射机制是很主要的一种手艺,它在完成类的承继中发扬了很年夜的感化。
利用反射来传送款式参数
在Ajax编程中,常常要能静态的改动界面元素的款式,这能够经由过程工具的style属性来改动,好比要改动背景致为白色,能够如许写:
element.style.backgroundColor="#ff0000";
个中style工具有良多属性,基础上CSS里具有的属性在JavaScript中都可以利用。假如一个函数吸收参数用用指定一个界面元素的款式,明显一个或几个参数是不克不及切合请求的,上面是一种完成:
functionsetStyle(_style){
//失掉要改动款式的界面临象
varelement=getElement();
element.style=_style;
}
如许,间接将全部style工具作为参数传送了出去,一个style工具大概的情势是:
varstyle={
color:#ffffff,
backgroundColor:#ff0000,
borderWidth:2px
}
这时候能够如许挪用函数:
setStyle(style);
大概间接写为:
setStyle({color:#ffffff,backgroundColor:#ff0000,borderWidth:2px});
这段代码看上往没有任何成绩,但实践上,在setStyle函数外部利用参数_style为element.style赋值时,假如element本来已有了必定的款式,比方已经实行过:
element.style.height="20px";
而_style中却没有包含对height的界说,因而element的height款式就丧失了,不是最后所要的了局。要办理这个成绩,能够用反射机制来重写setStyle函数:
functionsetStyle(_style){
//失掉要改动款式的界面临象
varelement=getElement();
for(varpin_style){
element.style[p]=_style[p];
}
}
程序中遍历_style的每一个属性,失掉属性称号,然后再利用方括号语法将element.style中的对应的属性赋值为_style中的响应属性的值。从而,element中仅改动指定的款式,而其他款式不会改动,失掉了所要的了局。有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。 |
|