Module模式

    var timer = (function(){        let count = 0 // 公有变量        return {            add() {                count++            },            getCount() {                return count            }        }    })()    timer.add()    console.log(timer.getCount())
长处:因为闭包原理,实现了公有变量

字面量模式

let baseEvent = {    el: document.querySelector('#btn'),    init() {        this.el.innerHTML = '按钮'    }}baseEvent.init()
长处: 一个字:看起来高级

constructor模式

function Car(name) {    this.name = name    this.alert = function() {        console.log(this.name)    }}let car = new Car('audi')car.alert()

跟“工厂模式”一样,毛病是alert每次都得初始化,而且没法继承
优化:

function Car(name) {    this.name = name}Car.prototype.alert = function() {   console.log(this.name) }let car = new Car('audi')car.alert() // audi// 笼罩car.alert = function() {    console.log(this.name + '!!!')}car.alert() // audi!!!