几种创建对象的方式

假设我们需要对学生进行抽象,学生这类对象都具有,name、age、grade、study这类属性。

  1. 使用字面量方式
 let person = {
         name: "xiaobei",
         age: 18,
         grade: "高二",
         study: function () {
             console.log("i am study function");
         }
     }

在使用字面量的创建对象的时候,会发现其结构有点像JSON,但是它们两者不是同一种类型的东西。

  • JSON中,不允许将值设置为函数。
  • JSON中,所有的属性名都必须用双引号包住。
  • JSON中,允许的属性值有字符串,数字,数组,boolean。

在使用以上的方式创建对象的时候,你会发现这样的代码非常的"散",假设我们需要创建非常多得学生对象的时候,就需要些很多重复的代码,而且容易把属性名写错。所以你可以把创建对象的过程,封装成一个方法。

  1. 使用使用方法的方式来创建对象
```
function createPerson(name, age, grade) {
        let person = new Object();
        person.name = name;
        person.age = age;
        person.grade = grade;
        person.study = function () {
            console.log("i am study function");
        }
        return person;
    }


```

使用方法来创建对象的话,相比于字面量的创建方式更优一点在于。

  • 当需要创建的实例很多是,就不会出现代码冗余。
  • 不会出现属性写错的情况。

当然它他存在有缺点,创建了一个空对象并且返回它。而且这样创建的类型都属于Object的类型。

  1. 使用构造函数创建对象
 function Person(name, age, grade) {
            this.name = name;
            this.age = age;
            this.grade = grade;
            this.study = function () {
                console.log("i am study function");
            }
    }
       
let person = new Person("xiaobei", 19, "高三");
person.study();       
        

上述代码中,关键字 new 跟着一个含参函数,用于告知浏览器我们想要创建一个对象实例,非常类似函数调用,并把结果保存到变量中。

你可能感兴趣的:(几种创建对象的方式)