JS创建对象的几种方式

245 阅读1分钟

大家知道,JS 是一门面向对象的语言,但我们平时写代码过程中,却很少用到面向对象。今天我来总结一下 JS 创建对象有几种方式。

对象字面量

let person={
    firstname:"li",
    lastname:"ruifeng",
    age:25,
    eyecolor:"black"
}

工厂模式

    function createPerson (name, age, job) {
        var o = new Object ()
        o.name = name
        o.job = job
        o.sayName = () => {
            alert(this.name)
        }
        return o
    }
    // 调用
    var person = createPerson('lirufieng', 18, 'frontEnd')

构造函数模式

function person (name, age, job) {
    this.name = name
    this.age = age
    this.job = job
    this.sayName = function () {
         alert(this.name)
    }
}

// 调用
var person = new Person('lirufieng', 18, 'frontEnd')

原型模式

function Person () {}

Person.prototype.name = 'liruifeng'
Person.prototype.age = 18
Person.prototype.sayName = function () {
    alert(this.name)
}

// 调用
var person = new Person()

构造函数 + 原型模式

function person (name, age, job) {
    this.name = name
    this.age = age
    this.job = job
}
Person.prototype = {
    constructor: Person,
    sayName () {
        alert(this.name)
    }
}

以上是我总结的 JS 创建对象的几种方式,如有遗漏或不对的地方,还请指正。