使用 JSON 创建对象

    作者:Flyingis

    一般在JavaScript中可以调用Object类的构造函数来创建对象:

None.gif var  obj  =   new  Object();

    并且可以将对象附加到其他对象上,类似于C++中的对象数组,例如,某大学里拥有多个专业,每个专业都有一位主任和多名讲师组成,在JavaScript中可以这样来描述:

None.gif var  university  =   new  Object();
None.gifuniversity.specialty 
=   new  Array();
None.gifuniversity.specialty[
0 =   new  Object();
None.gif
None.gif
// 该专业的主任是Sam
None.gif
university.specialty[ 0 ].director.name  =   " Sam " ;
None.gifuniversity.specialty[
0 ].director.age  =   40 ;
None.gif
None.gif
// 该专业的两位讲师分别是Tom和Jerry
None.gif
university.specialty[ 0 ].instructor  =   new  Array();
None.gif
None.gif
var  tom  =   new  Object();
None.giftom.name 
=   " Tom " ;
None.giftom.age 
=   32 ;
None.gifuniversity.specialty[
0 ].instructor[ 0 =  tom;
None.gif
None.gif
var  jerry  =   new  Object();
None.gifjerry.name 
=   " Jerry " ;
None.gifjerry.age 
=   " 35 " ;
None.gifuniversity.specialty[
0 ].instructor[ 1 =  jerry;

    可以看出,当对主任和讲师有更详细的描述时,这样一层层的代码给人感觉非常繁琐,许多代码都是重复编写,不但增加了代码量,并且还很枯燥。

    JSON是一种轻量级的数据交换格式,它的优点就是便于读写,可以将JavaScript中的对象及其赋值写成键值对的形式,例如上面代码通过JSON来描述可以写成:

ExpandedBlockStart.gif ContractedBlock.gif var  university  =   dot.gif {
InBlock.gif  specialty : [
ExpandedSubBlockStart.gifContractedSubBlock.gif  
dot.gif{
InBlock.gif    director : [
InBlock.gif      name : 
"Sam",
InBlock.gif      age : 
40
InBlock.gif    ],
InBlock.gif    instructor : [
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{name : "Tom", age : 32}
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{name : "Jerry", age : 35}
InBlock.gif    ]
ExpandedSubBlockEnd.gif  }

InBlock.gif  ]
ExpandedBlockEnd.gif}

    这样来描述整个对象的内部结构显得更为简洁、清晰,除了声明属性和对象外,还可以使用JSON创建的对象定义成员函数。当然,不论采用何种方法来描述,目的都是为了更高效直观的编写JavaScript代码,我们可以使用JSON定义一个对象,然后使用JavaScript添加属性,也可以使用JSON来扩展JavaScript所定义的对象,创建任意复杂的对象层次。 69014.html

Flyingis 2006-09-11 19:33 发表评论
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值