创建对象的五种方式

 

目录

1.字面量创建对象 (每个对象都是独立的)用于创建单个对象

2.内置构造函数创建对象

3.工厂函数创建对象 (可以根据需要传不同参数 创建多个对象)

4.自定义构造函数创建对象 (通过new关键字简化步骤和代码 和工厂函数作用相同)

5.class类创建对象 (代码结构清晰)


通过 对象.属性 或者 对象.方法()  获取对象里面的属性和方法

1.字面量创建对象 (每个对象都是独立的)用于创建单个对象

       // 字面量创建对象
        var obj = {
            name: "张三",
            age: 20,
            sty() {
                console.log(this.name + "爱睡觉");
            }
        }
        obj.sty()

2.内置构造函数创建对象

       // 内置构造函数创建对象
        var obj1 = new Object()
        obj1.name = "小白"
        obj.fn = function () {
            console.log("内置构造函数创建对象");
        }
        console.log(obj1.name);
        obj1.fn()

3.工厂函数创建对象 (可以根据需要传不同参数 创建多个对象)


        // 工厂函数 通过改变参数多次使用
        function fun(name, age, gender) {
            var obj = new Object()
            obj.name = name
            obj.age = age
            obj.gender = gender
            // 返回一个对象 创建的就是对象类型+
            return obj
        }
        var p1 = fun("张三", 20, "男")
        var p2 = fun("李四", 30, "女")
        console.log(p1, p2);
        console.log(typeof (p1));

4.自定义构造函数创建对象 (通过new关键字简化步骤和代码 和工厂函数作用相同)


       // 自定义构造函数 首字母大写
        function Preson(name, age, gender) {
            this.name = name
            this.age = age
            this.gender = gender
        }
        // new关键字
        // 1. 创建一个空对象 var obj=new Object()
        // 2. 把对象赋值给this this=obj (函数里面的this指向window)
        // 3. 通过this添加属性和方法 this.xx=xx
        // 4. 返回this (当前对象) return this

        // 创建对象的时候必须使用new
        var p3 = new Preson("小黑", 10, "男")

5.class类创建对象 (代码结构清晰)

       // 类 Person
        class Person {
            // 构造函数
            constructor(name, age) {
                // 实例成员
                this.name = name
                this.age = age
            }
            // 原型成员
            eat() {
                console.log(this.name + "爱睡觉");
            }
            // 静态成员
            static shows() {
                // 静态成员this指向构造函数Person
                console.log(this.name + "爱吃饭");
            }
        }
        // 实例化
        var p = new Person("小白", 10)
        console.log(p);
        p.eat()
        //静态成员只能通过构造函数调用
        Person.shows()

创建对象的五种方式_第1张图片

你可能感兴趣的:(javascript,开发语言,ecmascript)