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