自定义对象
为什么要学习对象
-
对象可以帮我们封装一组数据,使数据在程序中的传输更加的灵活,方便
比如之前做的一个案例,传入一个日期对象,返回一个日期字符串.
-
用对象来描述事物,方便我们对事物的操控
程序中:Math,Array,Date,string
现实中:某一个手机或是学生 特征+行为
对象的概念
概念:
-
对象就是无序属性的集合或是键值对的集合.
-
JavaScript中的对象: 其属性可以包含基本值、对象或函数。
-
对象就是一组没有顺序的值。
-
我们可以把JavaScript中的对象想象成键值对,其中值可以是数据和函数。
对象的组成
组成: 属性 + 方法
属性——对象具有的各种特征或特性
每个对象的每个属性都拥有特定值
例如:李老师和张三的年龄不一样.
属性:姓名,性别,年龄,身高,体重,家庭地址,籍贯等...
属性的值: 具体的数据
方法: 行为,动作,要执行的操作.
老师的行为-- 上课.
学生的行为-- 学习、听老师讲课、打球、做游戏...
创建对象的方式
1.定义对象的方式 new + 构造函数的方式来创建对象
var obj = new Object(); //
obj.name = 'jack';
obj.age = 20;
obj.gender = '男';
obj.sayHi = function(){
console.log('大家好')
}
2.构造函数的方式批量创建对象
function Student(name,age,gender,address){
this.name = name;
this.age = age;
this.gender = gender;
this.address = address;
this.sayHi = function(){
console.log("大家好,我是"+this.name+",今年"+this.age+"岁了,
来自于"+this.address+",我是"+this.gender+"生");
}
}
var zs = new Student("张三",20,"男","广州市");
zs.sayHi();
var ls = new Student("李四",2
new做的4件事
-
创建一个空对象
-
将创建出来的对象赋值给this
-
从上往下执行代码 给属性赋值 也就是相当于给空对象存储数据
-
返回这个对象
3.对象字面量的方式
var obj = {
name : "田七",
age : 23,
gender : "女",
sayHi : function(){
console.log("大家好,我是"+this.name+",今年"+this.age+"岁了,
来自于"+this.address+",我是"+this.gender+"生");
}
};
console.log(obj.name);
console.log(obj.age);
console.log(obj.gender);
obj.sayHi();
访问对象属性的两种方式
-
点的方式
-
[]的方式
var obj = {
name : "田七",
age : 23,
gender : "女",
sayHi : function(){
console.log("大家好,我是"+this.name+",今年"+this.age+"岁了,
来自于"+this.address+",我是"+this.gender+"生");
}
};
console.log(obj.name); // 一种是点的方式
console.log(obj['name']); // 一种是[]的方式 这种方式更加灵活
console.log(obj.age);
console.log(obj['age']);
遍历对象中的属性值
for(var key in aaa){
console.log(aaa[key]);
}