定义对象的方法

1. 定义对象有两种方式:1.使用字面量方式直接定义 2.使用构造函数创建对象

  方式一:

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

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
         // 使用字面量方式直接定义对象
         let zhangsan = {
            // 定义对象的属性
            name:'张三',
            age:20,
            gender:'男',
            // 定义对象的方法
            eat:function(){
                // 如何在方法里面,使用当前对象自己的成员(对象的成员:包括属性和方法)。
                // 通过this.当前成员
                console.log(`大家好!我叫${this.name},我在吃饭`);
            },
            sing:function(){
                console.log(`大家好!我叫${this.name},我在唱歌`);
            },
            sayHi:function(){
                console.log(`大家好!我叫${this.name},今年${this.age}岁,性别是${this.gender}`);
            }
        }
        console.log(zhangsan);
        // 通过对象名.属性的方式,可以操作对象的属性
        zhangsan.name = '张杰'   //修改属性
        console.log('姓名:'+zhangsan.name);  //获取属性
        // 通过对象名.方法()的方式,执行对象的方法
        zhangsan.eat()
        zhangsan.sing()
        zhangsan.sayHi()
    </script>
</body>

</html>

 方式二:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>使用构造函数创建对象</title>
</head>
<body>
    <script>
        // 构造函数,也是一个函数,通常情况下该函数的首字母要大写
        // 在该函数的内部,使用this关键字定义构造函数的成员
        // 构造函数也称之为:类,类就是类型
        function Student(name,age,gender){
            // 构造函数也是函数,所以,也能传递参数

            // 定义属性
            this.name = name
            this.age = age
            this.gender = gender
            // 定义方法
            this.sayHi = function(){
                console.log(`大家好!我叫${this.name},今年${this.age}岁,性别是${this.gender}`);
            }
        }

        // 类只需要定义一次,但是可以根据该类创建出无数个对象
        let s1 = new Student('张三',20,'男')
        let s2 = new Student('李四',18,'女')
        let s3 = new Student('王五',22,'男')
        console.log(s1);
        console.log(s2);
        console.log(s3);
        s1.sayHi()
        s2.sayHi()
        s3.sayHi()

        // 总结:如果只需要一个对象,可以采用字面量方式直接定义
        // 如果需要无数个相同格式的对象,最好的做法是先定义构造函数,然后通过该构造函数创建对象。
    </script>
</body>
</html>


版权声明:本文为zhou_nj原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。