JSON 对象
1、js对象(数组) –> json对象(数组):
1 | JSON.stringify(obj/arr) |
2、json对象(数组) –> js对象(数组):
1 | JSON.parse(json) |
上面这两个方法是ES5中提供的。
我们要记住,我们通常说的“json字符串”,只有两种:json对象、json数组。
typeof json字符串的返回结果是string。
Object的扩展
ES5给Object扩展了一些静态方法,常用的有2个,我们接下来讲解。
方法一
1 | Object.create(prototype, [descriptors]) |
作用: 以指定对象为原型,创建新的对象。同时,第二个参数可以为为新的对象添加新的属性,并对此属性进行描述。
举例1:(没有第二个参数时)
1 | var obj1 = {username: 'smyhvae', age: 26}; |
打印结果:

我们发现,obj1成为了obj2的原型。
举例2:(有第二个参数时)
第二个参数可以给新的对象添加新的属性。我们修改上面的代码,尝试给obj2添加新属性sex:
1 | var obj1 = {username: 'smyhvae', age: 26}; |
上方代码中,我们通过第5行的sex给obj2设置了一个新的属性sex,但是要通过value来设置属性值(第6行)。
设置完属性值后,这个属性值默认是不可修改的,要通过writable来设置。总而言是,这几个关键字的解释如下:
value:设置属性值。writable:标识当前属性值是否可修改。如果不写的话,默认为false,不可修改。configurable:标识当前属性是否可以被删除。默认为false,不可删除。enumerable:标识当前属性是否能用 for in 枚举。 默认为false,不可。
方法二
这个方法有点难理解。