第一部分、对象
对象:一切皆为对象,是属性和行为的结合体。在面向对象中把"属性"称为对象的成员(成员变量),把"行为"称为成员方法(成员函数)。
- 属性:反应的是对象的静态特征。
- 行为:反应对象的动态特征。
第二部分、JavaScript对象
JavaScript中的对象:是一种数据类型,用"{}“表示一个对象,在”{}“中包裹了对象的成员(包括属性和方法)。以"key:value”(键—值对)方式储存各成员。"key"是成员名,"value"是成员的值。
1.对象的创建
对象的字面量就是用花括号“{ }”来包裹对象中的成员,每个成员使用“key: value”的形式来保存,key表示属性名或方法名,value表示对应的值。多个对象成员之间用“,”隔开。
例:创建一个空对象
var obj = {};
2.对象的访问
对对象的成员的访问格式是:
- 对象名.属性名或对象名[‘属性名’]
- 对象名.方法名([参数])或对象名[‘方法名’]([参数])
例:创建一个phone对象并访问它的成员
var phone = { //phone是一个对象
color: "黑色",
weight: "188g",
screenSize: "6.5寸",
call: function(name){
console.log("给"+name+"打电话");
},
sendMassage: function(name){
console.log("给"+name+"发信息");
},
playVideo: function(){
console.log("播放视频");
},
playMusic: function(){
console.log("播放音乐");
}
}
console.log("手机颜色:",phone["color"]);
console.log("手机大小:",phone.screenSize);
phone["call"]("奥巴马");
phone.sendMassage("川普");
phone.playMusic();
phone.playVideo();
3.给空对象添加属性和方法
var 对象名 = {};
对象名.属性名 = 值;
对象名.方法名 = function([参数]){
方法体语句;
}
4.使用new Object创建对象
Object:是JavaScript中的超级对象,即用户创建的对象都直接或间接继承了该对象的某些特性。
格式如下:
var 对象名 = new Object;
例:
var student = new Object();
student.name = "小明";
student.age = 18;
student.info = function(){
console.log("姓名:",student.name);
console.log("年龄:",student.age);
}
student.info();
5.利用构造方法来创建对象
- 构造方法:是一个初始化对象的方法。
使用构造函数创建对象的语法为“new 构造函数名()”,在小括号中可以传递参数给构造函数,如果没有参数,小括号可以省略。
格式如下:
构造方法的定义:
function 构造方法名([参数]){
this.属性名 = 值;
this.方法名 = function([参数]){
方法体语句;
}
}
利用构造方法创建对象:
var 对象名 = new 构造方法名([参数]);
function Student(name,gender,age){ //定义构造函数:Student
this.name = name;
this.gender = gender;
this.age = age;
this.shouInfo = function(){
console.log("姓名:",this.name);
console.log("性别:",this.gender);
console.log("年龄:",this.age);
}
}
var stu1 = new Student("小明","男",18); //利用构造方法创建对象
var stu2 = new Student("郭靖","男",21);
var stu3 = new Student("黄蓉","女",21);
stu1.shouInfo()
stu2.shouInfo()
stu3.shouInfo()
注意:滥用
- 建议构造方法名的首字母大写
- this是关键字,代表当前对象
6.遍历对象的属性和方法
使用for…in语法可以遍历对象中的所有属性和方法,示例代码如下:
for (var 遍历名 in 对象名){
语句;
}
//obj为待遍历的对象
var obj = {
name:"小明",
age:18,
sex:"男"
}
//遍历obj对象
for(var k in obj){ //通过k可以获取遍历过程中的属性名和方法名
console.log(k); //依次输出:name、age、sex
console.log(obj[k]); //依次输出:小明、18、男
}
7.使用in运算符判断对象是否存在否个成员
var obj = {
name:"小明",
age:18
};
console.log("name" in obj); //结果为true,表示对象成员存在
console.log("gender" in obj); //结果为false,表示对象成员不存在