抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

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
2
3
4
5
var obj1 = {username: 'smyhvae', age: 26};
var obj2 = {address:'shenzhen'};

obj2 = Object.create(obj1);
console.log(obj2);

打印结果:

我们发现,obj1成为了obj2的原型。

举例2:(有第二个参数时)

第二个参数可以给新的对象添加新的属性。我们修改上面的代码,尝试给obj2添加新属性sex

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var obj1 = {username: 'smyhvae', age: 26};
var obj2 = {address: 'shenzhen'};

obj2 = Object.create(obj1, {
sex: {//给obj2添加新的属性`sex`。注意,这一行的冒号不要漏掉
value: '男', //通过value关键字设置sex的属性值
writable: false,
configurable: true,
enumerable: true
}
});

console.log(obj2);

上方代码中,我们通过第5行的sex给obj2设置了一个新的属性sex,但是要通过value来设置属性值(第6行)。

设置完属性值后,这个属性值默认是不可修改的,要通过writable来设置。总而言是,这几个关键字的解释如下:

  • value:设置属性值。

  • writable:标识当前属性值是否可修改。如果不写的话,默认为false,不可修改。

  • configurable:标识当前属性是否可以被删除。默认为false,不可删除。

  • enumerable:标识当前属性是否能用 for in 枚举。 默认为false,不可。

方法二

这个方法有点难理解。

<