关于javascript:JS设计模式

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!!!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理