构造器模式
基于面向对象的类和实例来实现的,每个实例都是一个单独的空间,其中有自己私有的属性方法,互不影响。也可以调用公共的属性方法
// AModule类class AModule {constructor (){// 实例的私有属性,this是指类的实例this.arr = []}// 原型上的公共方法change (val) {this.arr.push(val)}}let module1 = new AModulelet module2 = new AModule
工厂模式
根据不同条件实现不同的处理逻辑
简单的工厂模式
function factory(options){const { type } = optionsswitch (type){case 'arrya':// ...breakcase 'object':// ...break}}factory({type: 'array'})factory({type: 'object'})
jquery中的工厂模式
(function () {var jQuery = function (selector, context) {// 创建init类的实例return new jQuery.fn.init(selector, context);};jQuery.fn = jQuery.prototype = {// ...};// 需要工厂的转换var init = jQuery.fn.init = function (selector, context, root) {};init.prototype = jQuery.fn;window.$ = jQuery;})();$('xxx'); //-> jQuery('xxx') 创建JQ类的实例,调取jQuery.fn原型上的方法
