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>