1.对象的定义
语法:对象的定义是通过“{ }”语法实现的。
组成:对象以对象成员(属性和方法)构成,多个成员之间使用逗号分隔。
成员:对象的成员以键值对的形式存放在{}中。



JSON与对象的区别:
JSON是一个字符串。
JSON不仅可以用来保存对象,还可以保存数字、字符串、数组等其他类型的数据。

2.访问对象成员


3.对象成员遍历


4.深拷贝与浅拷贝
拷贝(copy):是指将一个目标数据复制一份,形成两个个体。
深拷贝:参与拷贝的两个目标,改变其中一个目标的值,不会影响另一个目标的值。
浅拷贝:参与拷贝的两个目标,一个目标的值改变,另一个目标的值也会随之改变。
实现深拷贝
基本类型(如数值、字符型):通过变量赋值即可实现。
引用类型(如数组、对象):复制对象里的成员到另一个对象。
实现浅拷贝
引用类型(如数组、对象):通过变量赋值即可实现。
提示:浅拷贝是引用类型中才有的概念。
浅拷贝的优势
浅拷贝可以节省内存开销。
5.参考代码
<script>
//1.定义对象
var obj1 = {};//定义空对象
var obj2 = {name:"AAA"};//定义含有name属性的对象
var obj3 = {
name:"BBB",
age:20,
gender:"男",
//定义方法
speak:function(){console.log("hello!");}
};//定义含有3个属性的对象
//任务:定义一个学生的对象
var stu1 = {
name:"CCC",
age:21};
var obj4 = new Object();//创建对象
obj4.firstname = "DDD";
obj4.lastName = "EEE";
//2.访问对象成员
document.write(obj3.name +" "+ obj3.age +" "+ obj3.gender);
document.write(obj4.firstname +" "+obj4.lastName);
//对象的属性值得访问 通过 对象名.属性名访问
console.log(stu1);
console.log(stu1.name);
console.log(stu1.age);
//方法的调用
obj3.speak();
</script>
//*******************
<script>
var obj ={};
//为空对象添加属性
obj.name = "AAA";
obj.age = 20;
//为空对象添加方法
obj.printHello = function(){ console.log("hello!");};
obj.printNihao = function(){console.log("你好!");};
//成员的访问
console.log(obj.name);
console.log(obj.age);
obj.printHello();
obj.printNihao();
//遍历对象中所有成员
for(var key in obj)
{
console.log("成员名:"+key+",成员值:"+obj[key]);
}
//任务:自己定义一个对象,完成成员的添加与遍历
</script>
//********************
<!--
1.JSON的语法规则:
数据在名称/值对中
数据由逗号分隔
大括号保存对象
中括号保存数组
2.JSON数据书写格式:名称/值
"name":"长春工业大学人文信息学院"
"URL":"www.ccutchi.com"
3.JSON值
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true或者false)
数组(在中括号中)
对象(在大括号中)
4.举例
{"age":22,"name":"Jack","biye":false}
JSON数组,数组中包括多个对象
{"site":[
{"name":"百度","url":"www.ccutchi.com"},
{"name":"淘宝","url":"www.taobao.com"},
{"name":"新浪","url":"www.xinlang.com"}
]}
5.一个JSON对象包含另外一个JSON对象
-->
<body>
<script>
var site = [
{"name":"百度","url":"www.ccutchi.com"},
{"name":"淘宝","url":"www.taobao.com"},
{"name":"新浪","url":"www.sina.com"}
];
console.log(site[0].name+site[0].url);
var person1 = {"age":22,"name":"Jack","biye":false};
console.log(person1.name+person1.age);
console.log(person1["name"]);//注意加上双引号
var myObj = {
"name":"长春工业大学人文信息学院",
"code":"10000",
"zhuanye":{
"zy1":"外语",
"zy2":"法学",
"zy3":"自动化"
},
"sites":["www.ccutchi.com/waiyu",
"www.ccutchi.com/faxue",
"www.ccutchi.com/zidonghua"]
};
console.log(myObj.name+" "+myObj.code +" "+ myObj.zhuanye.zy1+" "+myObj.sites[0]);
//定义一个城市相关的JSON对象
</script>

