创建一个对象
var student={
name:"李白" , //student有一个name属性,值为"李白"
grade:"初一" ,
//a、student有一个say属性,值为一个函数
//b、student有一个say方法
say:function(){
console.log("你好");
},
run:function(speed){
console.log("正在以"+speed+"米/秒的速度奔跑");
}
}
对象是键值对的集合:对象是由属性和方法构成的 (ps:也有说法为:对象里面皆属性,认为方法也是一个属性)
- name是属性 grade是属性
- say是方法 run是方法
对象属性操作
获取属性:
第一种方式:.语法
- student.name 获取到name属性的值,为:"李白"
- student.say 获取到一个函数
第二种方式:[]语法
- student["name"] 等价于student.name
- student["say"] 等价于student.say
号外:2种方式的差异:
- .语法更方便,但是坑比较多(有局限性),比如:
- .后面不能使用js中的关键字、保留字(class、this、function。。。)
- .后面不能使用数字
var obj={};
obj.this=5; //语法错误
obj.0=10; //语法错误
- []使用更广泛
- o1[变量name]
- ["class"]、["this"]都可以随意使用
obj["this"]=10
- [0]、[1]、[2]也可以使用
obj[3]=50 = obj["3"]=50
- 思考:为什么obj[3]=obj["3"]
- 甚至还可以这样用:["[object Array]"]
- jquery里面就有这样的实现
- 也可以这样用:["{abc}"]
- 给对象添加了{abc}属性
设置属性
student["gender"]="男"
等价于:student.gender="男"
- 含义:如果student对象中没有gender属性,就添加一个gender属性,值为"男"
-
如果student对象中有gender属性,就修改gender属性的值为"男"
- 案例1:
student.isFemale=true
- 案例2:
student["children"]=[1,2,5]
- 案例3:
student.toShanghai=function(){
console.log("正在去往上海的路上")
}
删除属性
- delete student["gender"]
- delete student.gender
//delete关键字只能删除对象中的属性,不能删除变量
// var a=100;
// delete a;//错误的理解
清空对象
+person={};
//person对象不再具有任何属性
+person=null;
//表示将person变量的值赋为null,从此以后person不再是一个对象了