1、什么是对象?
是指一个具体的事物。在js中对象是一组无序的相关属性与方法的集合。所有的事物都是对象,例如字符串、数之、数组、函数等
对象是由属性与方法组成的
属性:事物的特征,常用名词。 方法:事物的行为
2、对象的作用
保存一个值时,可以用变量,保存多值可以用数组,如果要保存一个人的完整信息呢?就用到了对象。
(1)变量和属性的相同点,都是用来存数据的
变量:单独声明并赋值,使用的时候直接写变量名 单独存在。
属性:在对象里面不需要声明,有调用的格式
(2)函数和方法的相同点 都是实现某种功能
函数单独声明并调用。方法在对象里面创建,调用的时候:对象.方法。
3、创建对象的方式
(1)利用字面量创建对象{}
var obj={}//创建了一个空的对象
var obj={
uname: '张三丰',
age: 18,
sex: '男,
sayHi: function(){
console.log('hi')
}
}
里面的属性或方法采用键值对的方式 键 属性名 : 值 属性值
多个方法或属性用逗号隔开
方法后买你跟的是一个匿名函数
使用对象:调用对象属性:对象名.属性名 console.log(obj.uname)
还有一种方法: 对象名['属性名'] obj['age']
调用对象的方法: 对象名.方法名() obj.sayhi(),千万不要忘记小括号
(2)利用newObject创建对象
var obj = new Object() //创建了一个空的对象。
obj.uname = '张三丰';
obj.age = 18;
obj.sex='男‘;
obj.sayHi = function() {
console.log('hi')
}
我们是利用等号赋值的方法,添加对象的属性和方法
每个属性和方法之间用分号隔开。
console.log(obj.uname)//调用
obj.sayhi()
(3)利用构造函数创建对象
因为我们前面两种创建方式一次只能创建一个对象。
为了避免重复代码,可以封装为一个函数,这个函数里面封装的是对象。构造函数就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面。
function 构造函数名(){
this.属性 = 值;
this.方法 = function(){}
}
new 构造函数名();
如:
function Star(uname,age,sex){ //构造函数的名字首字母大写
this.name=uname;
this.age=age;
this.sex=sex;
this.sing=function(sang){
console.log(sang)
}
}
var 1dh = new Star('刘德华', 18,’男'); //调用函数,返回的是一个对象我们构造函数不需要return 就可以返回结果。
console.log(1dh.name)
1dh.sing('冰雨')
var 2dh = new Star('张学友', 18,’男');
console.log(2dh.name)
调用函数用new
总结:构造函数,泛指某一大类,类似于java的class
我们创建对象的过程称为对象实例化
(3)new关键字执行过程:
new构造函数可以在内存中创建一个空的对象
this就会指向刚才创建的空对象
执行构造函数里面的代码,给这个空对象添加属性和方法
返回这个对象
4、遍历对象属性
for.....in语句用于对数组或者对象的属性进行循环操作
for (变量 in对象){
}
例如:
for (var k in obj) {
console.log(k)//k变量输出,得到的是属性名
console.log(obj[k]) //obj[k]得到的时属性值
}