javascript反射机制

翻译|其它|编辑:郝浩|2007-09-03 13:42:44.000|阅读 1357 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

最近才了解  javascript  的反射机制,只知道  Java  中有反射机制,没想到这脚本中也有反射机制.真是应了我的那句话"没有做不到,只有想不到".费话不说太多,还是分享一下我的学习心得.

我们先创建一个简单的对象.

js 代码

1.      <script>"text/javascript">  

2.      var A={  

3.          author:"poyexinghun",  

4.          init:function(){  

5.              alert("load A");  

6.          }  

7.      }  

8.        

9.      function showObject(obj){  

10.      for(var p in obj){  

11.          if(typeof obj[p]=="function"){  

12.              obj[p]();  

13.          }else if(typeof obj[p]=="string"){  

14.              document.write(p+"--->"+obj[p]+"
");  

15.          }  

16.      }  

17.  }  

18.  showObject(A);  

19.  </script> 

注意:

Typeof  是用来测试数据类型的,它有六种返回值:"number," "string," "boolean," "object," "function," "undefined."(不过要注意这六种返回值一定要是小写的.我在学习的过程中就遇到过这样的问题).

我们首先对传进来的对象  A  做了一次遍历,会得到对象中的属性名和方法名,在用ObjectName[propertyName]查看他们的类型.

我们在看看下一个问题:

js 代码

1.      <script>"text/javascript">  

2.      var A={  

3.          author:"poyexinghun",  

4.          init_tiem:new Date(),  

5.          init:function(){  

6.              if(arguments.length == 1){  

7.                  if(typeof arguments[0] =="string"){  

8.                      alert(arguments[0]);  

9.                  }else{  

10.                  alert("args isn't string type");  

11.              }  

12.          }else{  

13.              alert("load A");  

14.          }  

15.      }  

16.  }  

17.    

18.  function showObject(obj){  

19.      for(var p in obj){  

20.          if(typeof obj[p]=="function"){  

21.              obj[p](new Date());  

22.          }else if(typeof obj[p]=="string"){  

23.              document.write(p+"--->"+obj[p]+"
");  

24.          }else if(typeof obj[p]=="object"){  

25.              document.write(p+"--->"+obj[p].getYear()+"-"+obj[p].getMonth()+"-"+obj[p].getDate()+"
");  

26.          }  

27.      }  

28.  }  

29.  showObject(A);  

30.  A["init"]("aaaa");  

31.  </script>  

其实这个代码块有二个看点:
从第6行开始到第14

每个执行的方法中都会有一个  Arguments  对象,作用是获得执行方法中的参数.有了这个东东,我们就可以写多态的方法了.


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:JavaEye

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP