现在的位置: 首页 > 综合 > 正文

JavaScript Object原生类型的扩展

2013年05月25日 ⁄ 综合 ⁄ 共 1838字 ⁄ 字号 评论关闭

Object原生类型
         一个无序的集合,可以存放任意类型对象
         常作为字典使用 可以使用下面两种方式使用
          o.ItemName
          o.["ItemName"]
         可以使用for in 遍历字典中每一项

 1<script language="javascript" type="text/javascript">
 2        function method1()
 3       {
 4            var o = new Object();
 5            o["Name"]="陈亮";
 6            o.Age = 21;
 7            display("Name:"+o.Name);
 8            display("Age:"+ o["Age"]);
 9            display("<hr />");
10            
11            //使用JSON方式创建一个对象
12            var o1 ={Name:"陈亮",Age:21};
13            display("Name:"+o.Name);
14            display("Age:"+ o["Age"]);
15            display("<hr />");
16            
17            
18            
19       }
 
20      
21      function method2()
22      {
23            var ob= new Object();
24            //使用循环给Object对象赋值
25            for(var i = 0 ; i < 10 ; i++)
26            {
27                key = "key"+i;  
28                ob[key] = i;   
29            }

30            //循环输出Object对象的每一项
31            for(var k in ob)
32            {
33                display("key:"+k+" ----- value:"+ob[k]);
34            }

35      }
 
36   
37        function display(text)
38        {
39            document.getElementById("message").innerHTML += (text + "<br />");
40        }

41        method1();
42        method2();
43
</script>

 Object原生类型扩展
         Object.getType(instance) 函数 
               返回指定对象实例的类型。
          Object.getTypeName(instance) 函数 
               返回标识对象的运行时类型名称的字符串。

注意:
     不要扩展Object其prototype对象其扩展将会出现所有的对象中影响for操作的结果

 Object.prorotype
      出现在所有对象中

  toSring()/toLocaleString()
       --得到表示当前对象与环境无/有关的字符串
  valueOf()
       --返回表示该对象的value(大部分类型会覆盖这个方法)
  hasOwnProperty(propertyName)
       --对象上是否直接定义了某个属性
       --不考虑prototype链查找
  isPrototypeOf(obj)
       --obj是不是当前对象的prorotype对象
       --顺着prototype链查找
  propertylsEnumerable(propertyName)
       --某属性是否可以遍历
       --不考虑prototype链

抱歉!评论已关闭.