1.自定义javascript对象封装数据与方法
2.JSON
JavaScript Object Notation ,即JavaScript 对象表示法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript" src="mytool.js"></script> <script type="text/javascript"> //javascript命名规范示例 var iN = 1; var s = "aaa"; var bX = true; var oMap = {}; /** javascript中存储数据的容器 : 数组 ,数组适用于处理一类有序的数据 ,数据与角标有对应关系,则可以用数组来存储映射关系 对于没有规律,更复杂的数据存储,需要自定义对象来完成数据的存储 javascript中自定义对象,完成复杂数据的存储 */ //下面4中定义方式有不同的适用场景 //第一种方式---通过函数创建对象,然后再给对象动态赋予属性,属性可以是简单类型,也可以是复杂类型 function Person() {} var p = new Person(); p.name = "lisi"; p.age = 20; p.friends = ["smith","john","tom"];//数组中可以存放其它数组,或对象 sop(p.name + "," + p.age);//lisi,20 sop(p["name"] + "," + p["age"]);//lisi,20 sop(p.friends);//smith,john,tom sop("<hr/>"); //第二种方式 ---通过Object创建对象 var god = new Object(); god.name = "god"; god.weapon = "ideology"; god.fight = function() { return this.name + " is fighting, use:" + this.weapon; } sop(god.fight());//god is fighting, use:ideology sop("<hr/>"); //第三种方式--->通过函数创建对象,利用"构造器"进行数据的初始化,不同的对象进行不同的初始化,非常灵活 ,与java中操作对象非常类似了 //适用于定义一种数据比较复杂的类型,而且经常变化,又需要保持变化过程【 在客户端的进行数据存储与处理】 function Person(name,age) { this.name = name; this.age = age; this.getName = function() { return this.name; } this.setName = function(name) { this.name = name; } this.getAge = function() { return this.age; } this.setAge = function(age) { this.age = age; } } var p = new Person("zhangsansan",20); sop(p.getName()+","+p.getAge());//zhangsansan,20 p.setName("小强"); p.setAge(30); sop(p.getName()+","+p.getAge());//小强,30 sop("<hr/>"); //第四种方式 ---通过{}创建对象 ,运用于初始化一堆数据, //当成Map集合使用 ,先初始化, 再根据key从这个对象中动态读取数据 //这种方式适用于初始化有映射关系的数据,不管数据有多大,关系嵌套有多深,都能用这种方法处理,而且简单 var oMap = {};//定义一个对象 //定义一种数据交换格式 var oItems = { itemA:"aaaaaaaa", "itemB":"bbbbbbbb" } //访问对象中的属性的两种方式 :对象.属性名 , 对象["属性名"],两种都可以 ! sop(oItems.itemA); sop(oItems["itemA"]); sop(oItems.itemB); sop(oItems["itemB"]); //注意:必须用var来显示的定义变量,否则IE9不支持,其它IE版本未测试 //不用var显示定义变量,firefox也能正常运行,但是,为了规范,在使用for in 时都用var来显示的定义变量吧! for(var item in oItems) { sop("key="+item+",value="+getValue(item)); } function getValue(key) { return oItems[key]; } //----------------------------JSON-------------------------------------// //------>其实就是当前流行的JSON---->JavaScript Object Notation JavaScript 对象表示法 sop("<hr/>"); //第四种方式其实就是在定义一个JSON格式的 javascript对象 !!! //标准JSON格式要求key为字符串,使用"key"进行描述,value类型丰富! var oProduct = { "product_A": [ { "name": "water", "price": 3.00 }, { "name": "cigarette", "price": 20.00 } ], "product_B": [ { "name": "rich", "price": 20.89 }, { "name": "meat", "price": 25.67 } ] } for(var product in oProduct) { var productArray = oProduct[product];//key:product_A/product_B, value:对应的数组 for(var prod in productArray)//逐个获取数组中的对象 sop(productArray[prod].name+":"+productArray[prod].price);//通过数组的角标获取到对应的对象 ,再从对象中取出属性值 } /* 遍历结果: water:3 cigarette:20 rich:20.89 meat:25.67 */ </script> </head> <body> </body> </html>