为什么要使用对象直接量,它和JSON有什么关系(转)

近来看了国外的一些知名网站的JS源码,发现里面很多地方都用到对象直接量,特别是定义一些对象和类的时候。也许你会问什么是对象直接量? ECMAScript V3定义了对象直接量的语法,使你能够创建对象并定义它的属性。对象直接量(也称为对象初始化程序)是由一个列表构成的,这个列表的元素是用冒号分隔的属性/值对,元素之间用逗号隔开的,整个列表包含花括号之中。下面就是一个简单的例子:

var shenni= {age:24,birthday:'1982年2月14日'};

也可以嵌套:

var shenni= {age:24,birthday:{year:'1982年',month:'2月',day:'14日'}};

需要注意的就是,对象直接量中的属性值不必是产量,它可以是任意的JavaScript表达式

如:
var shenni= {age:(2+4),birthday:{year:'1982年',month:'2月',day:'14日'}};

可能有些人看这个东西很像一个东西,对就是JSON。看看下面的这条语句就知道了:
{'age':24,'birthday':'1982年2月14日'};
这就是JSON,唯一的区别就是age和'age'。它们这么像,是不是应该有什么联系或者什么姻缘呢。
不错,它们是可以相互转换地,对象直接量可以转换为JSON,JSON也可以转换为对象直接量。这也是JSON
能够作为第三方的交换数据的重要原因之一,它可以直接转换,然后在JavaScript中使用。

转换的方法如下:
对象直接量 -> JSON ,这个需要用到W3C官方提供的JOSN.js进行转换。其实这个js里面的代码也简单,有兴趣的朋友可以下载看一看。

var JSON = JSON.stringify(shenni) OK, 这样变量JSON就是对象直接量了。

JSON-> 对象直接量:
我的另外一篇谈论EVAL方法的用途里面已经提到这方面的应用了!
eval ('var sheni = ('+JSON+')');//JSON 为{'age':24,'birthday':'1982年2月14日'}字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值