JS第十讲--对象

十、对象

(一)对象导读

(二)对象的概念

对象是一个具体的事物,万物皆对象.

如:班主任不是对象,咱们班的班主任是对象.

对象是一组无序的相关属性和方法的集合.所有的事物都是对象.例如字符串,数值,数组,函数等.

对象是由属性和方法组成的:

  • 属性:事物的特征,在对象中用属性表示(用名词)

  • 方法:事物的行为,在对象中用方法表示(用动词)

保存一个值用变量,保存一组值用数组,保存一组不同类型的信息用对象.

 

(三)用字面量创建对象

创建对象有三种方式:

  1. 利用字面量创建对象

  2. 利用new Object创建对象

  3. 利用构造函数创建对象

  1. 利用字面量创建对象:

    对象字面量:就是花括号{}里面包含了表达这个具体事物(对象)的属性和方法.

    创建对象:

    var obj={
        uname: '张三丰',
        age: 18,
        sex: '男',   //这三个是属性
        sayHi: function(){
            console.log('hi');
        }           //这个是方法
    };

    里面的属性或方法采用键值对的形式.属性名:属性值

    多个属性名和方法中间用逗号隔开

    方法冒号后面跟的是匿名函数

  1. 使用对象

    • 调用对象的属性

      (1) 对象名.属性名

      console.log(obj.uname);

      (2) 对象名['属性名']

      console.log(obj['age']);

    • 调用对象的方法 sayHi 对象名.方法名 千万别忘记添加小括号

      obj.sayHi();

(四)变量属性 方法函数的区别

变量与属性:

  1. 相同点:

    • 都是用来存储数据的

  2. 不同点:

    • 变量单独声明并赋值,单独存在

    • 属性是在对象中,不需要声明.使用时必须是对象.属性

方法和函数:

  1. 相同点:

    • 都是实现某种功能

  1. 不同点:

    • 函数是单独生命并调用,单独存在 函数名()

    • 方法在对象里,调用时是对象.方法()

(五)用new Object创建对象

与new Array()原理一致

使用方法:

var obj=new Object(); //创建了一个空对象
obj.uname='张三丰'; //追加属性
obj.age=18;
obj.sex='男';
obj.sayHi=function(){
    console.log('hi');
}

利用等号赋值的方法,添加对象的属性和方法

每个后面是分号结尾

调用方法与字面量创建的一样.

(六)构造函数

前面两种创建对象的方式都是只能创建一个对象,如果想创建一组具有相同属性类型的对象,就需要构造函数.

这个函数不一样,里面封装的不是普通代码,而是对象.它就是把对象里面一些相同的属性和方法抽象出来封装到函数里面.

构造函数:是一种特殊的函数,主要用来初始化对象,即:为对象成员变量赋初值.它总与new运算符一起使用.我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面.

利用构造函数创建对象:

语法:

function 构造函数名(){
    this.属性=值;
    this.方法=function(){
        方法体;
    }
}
//使用:
var 对象=new 构造函数名();

四大天王共同属性:名字,年龄,性别. 共同方法:唱歌

function Star(uname,sex,age){
    this.name=uname;
    this.age=age;
    this.sex=sex;
    this.sing=function(sang){
        console.log(sang);
    }
}
var liu=new Star('刘德华','男',18);
console.log(liu.name);
liu.sing('冰雨');

注意:

  1. 构造函数名字首字母要大写!!!

  1. 构造函数不需要return就可以返回结果

  1. 调用构造函数必须使用new

  2. 我们只要new Star()一次,就创建了一个对象

  3. 我们的属性和方法前面前面必须写this,this指向在创建的对象

(七)构造函数和对象的联系

对象是一个具体的事物

构造函数时泛指的某一大类,类似于java里的类(class)

我们利用构造函数创建对象的过程,也称为对象的实例化

因此,对象也叫实例

(八)new关键字执行过程

  1. 当构造函数遇到new之后,会在内存中创建一个空的对象.

  2. this就会指向刚才创建的空对象

  3. 执行构造函数里的代码给这个空对象添加属性和方法

  4. 返回这个对象.

构造函数不需要return是因为new关键字默认返回一个对象

(九)遍历对象

var obj={
    name: 'liu',
    sex: 'male',
    age: 18
};

如何输出这个对象的所有属性?

for...in语句,可以遍历对象

for(var 变量 in 对象){
    
}

于是乎:

for(var k in obj){
    console.log(k); //输出变量,得到的是属性名
    console.log(obj[k]); //obj[k],得到的是属性值
}

for...in里面的变量名,一般用k或者key

如果里面有方法,也会遍历出来.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值