JavaScript基础——对象简介

对象的分类

Javascript中有三种对象:自定义对象、内置对象、浏览器对象

这里我主要简单说明介绍下自定义对象。

对象的含义

JavaScript中,万物皆对象。比如,一本书、一个杯子、一个数据库或者一个与远程连接的服务器都是对象。

对象是指一个具体的事物,不是一个模糊或者一类事物。比如,人不是对象,但是这个人、那个人、在我旁边喝水的一个人是对象;笔不是对象,一支红色的笔、一支断掉的笔、一支没有水的钢笔是对象。

对象:是一组无序的相关属性和方法的集合

属性:对象的特征(一般是名词)。描述对象的外在外形

方法:对象的行为(一般是动词)。描述对象可以做什么

对象数据类型的必要性

在Javascript中,有五种简单数据类型和一个复杂数据类型。五种简单数据类型:number、Boolean、string、undefined、NaN。复杂数据类型就是Object——对象。

对象的存在使我们的结构更清晰,更强大了。

就我个人的理解:

比如我们可以用五种简单数据类型表示一个人,但是结构比较复杂一些,但是使用对象的话,就相对简单。

一个人就是一个对象,我们可以抽象出他的外在特征作为属性,抽象出行为特征作为方法。这样结构就比较清晰,如果还有其他的属性和方法也可以直接添加,而不是再去使用简单数据类型去添加那么麻烦了。这就是对象的必要性。

创建对象的方式

1.使用对象的字面量 {}

语法结构:

对象名 = {

       属性名: 值,

       方法名: function(){}

}

注意:采用键值对的方式写属性和方法,注意冒号后面有空格,使用逗号隔开

var obj = {
            // 三个属性 一个方法
            uname: '张三',
            uage: 18,
            usex: '男',
            sayHi: function () {
                console.log('hi~');
            }
        }

 

 

2.使用new Object创建对象  

语法结构:

对象名 = new Object();  创建的是一个空对象

对象名.属性 = 属性值;   追加属性

对象名.方法 = function(){} 追加方法

注意:此方法是使用  .   追加方法和属性

var person = new Object(); //创建一个空对象
        person.uname = '李四';
        person.uage = 20;
        person.usex = '男';
        person.sayHi = function () {
            console.log('我是李四');
        }

 

 

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

语法结构:

new 构造函数名(形参){

   this.属性 = 值;

   this.方法 = function (形参){}

}

注意:形参根据情况有或没有

 

 
function Start(uname, uage, usex) {
            this.name = uname;
            this.age = uage;
            this.sex = usex;
            // 构造函数里的方法
            this.do = function (doting) {
                console.log(doting);
            }
        }

 

构造函数的调用:

var person= new 构造函数名(){}

person 指向这个构造函数

var lyf = new Start('李易峰', 32, '男'); //调用函数返回的是一个对象
        console.log(lyf.name);
        console.log(lyf['age']);
        lyf.do('演员、歌手');

 

调用函数的属性和方法

        // 调用对象的方法

        obj.sayHi();

        // 调用对象的属性  两种方法:对象名.属性名、对象名['属性名']

        console.log(obj.uname); //更常用

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

 

 

案例代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 对象:是一组无序的相关属性和方法的集合  万物皆对象
        // 创建对象的三种方式
        // 1. 对象的字面量 {}  {}里面放对象的属性和方法——采用的是键值对方法
        // 语法结构,方法和属性之间需要用逗号隔开,最后一个不用
        // 对象名 = {
        //     属性名: 值,
        //     ...,
        //     方法名: function () {}
        // }
        var obj = {}; //创建的是一个空对象
        var obj = {
            // 三个属性 一个方法
            uname: '张三',
            uage: 18,
            usex: '男',
            sayHi: function () {
                console.log('hi~');
            }
        }
        // 调用对象的方法
        obj.sayHi();
        // 调用对象的属性  两种方法:对象名.属性名、对象名['属性名']
        console.log(obj.uname); //更常用
        console.log(obj['uage']);



        // 2.利用 new Object创建对象   利用=赋值的方法追加对象的方法和属性。
        // 语法结构:
        // 对象名 = new Object();
        // 对象名.属性 = 值;
        // 对象名.方法名 = function () {}
        var person = new Object(); //创建一个空对象
        person.uname = '李四';
        person.uage = 20;
        person.usex = '男';
        person.sayHi = function () {
            console.log('我是李四');
        }
        person.sayHi();


        //3.使用构造函数创建对象
        // 构造函数:就是初始化对象,泛指某一类事物,把相同的属性和方法抽象出来封装到函数里。
        // 对象:某一类事物中的一个具体事物
        // 构造函数创建对象的过程又叫对象的实例化
        // 语法结构:
        // function 构造函数名(形参【可有,也可没有】) {
        //     this.属性 = 值
        //     this.方法 = function(形参【可有,也可没有】) {}
        // }
        function Start(uname, uage, usex) {
            this.name = uname;
            this.age = uage;
            this.sex = usex;
            // 构造函数里的方法
            this.do = function (doting) {
                console.log(doting);
            }
        }
        //1.一般构造函数名首字母大写
        //2.没用return 直接返回一个对象
        //3.构造函数必须用new 创建

        // 调用构造函数  new 构造函数名();
        var lyf = new Start('李易峰', 32, '男'); //调用函数返回的是一个对象
        console.log(lyf.name);
        console.log(lyf['age']);
        lyf.do('演员、歌手');
    </script>
</head>

<body>

</body>

</html>

 

今天到这里了先。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值