梦幻之旅

DEBUG - 天道酬勤

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  671 随笔 :: 6 文章 :: 256 评论 :: 0 Trackbacks

近来看了国外的一些知名网站的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日'}字符串

posted on 2008-03-13 16:09 HUIKK 阅读(1390) 评论(4)  编辑  收藏 所属分类: JavaScript

评论

# re: 为什么要使用对象直接量,它和JSON有什么关系(转) 2008-07-28 11:17 1234567890
误导,弄反了
var shenni= {age:24,birthday:'1982年2月14日'};
这是json
{'age':24,'birthday':'1982年2月14日'};
这个是你说的什么对象直接量  回复  更多评论
  

# re: 为什么要使用对象直接量,它和JSON有什么关系(转)[未登录] 2008-12-01 13:35 jack
lz没反,楼上反了哈。  回复  更多评论
  

# re: 为什么要使用对象直接量,它和JSON有什么关系(转) 2009-07-24 10:44 匿名
lz没反,楼上反了哈。  回复  更多评论
  

# re: 为什么要使用对象直接量,它和JSON有什么关系(转) 2011-08-01 21:37 asdf
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问