MVC的三个对象分别做什么,给出伪代码MVC的概念:每个模块可以写成三个对象,即M,V,CM:模型(数据模型)负责操作所有dataconstm={data:{index:parseInt(localStorage.getItem(localKey))},create(){},delete(){},update(data){Object.assign(m.data,data)eventBus.trigger('m:updated')localStorage.setItem('n',m.data.n)},get(){}}V:View(视图)负责所有UI界面constv={el:null,html:``,init(container){v.el=$(container)},render(n){if(v.el.children.length!==0)v.el.empty()$(v.html.appendTo(v.el)}C:Controller(控制器)负责其他constc={init(container){v.init(container)v.render(m.data.n)c.autoBindEvents()eventBus.on('m:updated',()=>{console.log('here')v.render(m.data.n)})},events:{},autoBindEvents(){for(letkeyinc.events){constvalue=c[c.events[key]]constspaceIndex=key.indexOf('')constpart1=key.slice(0,spaceIndex)constpart2=key.slice(spaceIndex+1)v.el.on(part1,part2,value)}}exportdefaultcEventBus有哪些API,有什么用,给出伪代码代码示例API和函数:on(){}:monitortrigger(){}:triggeroff(){}:cancelimport$from'jquery'classEventBus{constructor(){this._eventBus=$(window)}on(eventName,fn){returnthis._eventBus.on(eventName,fn)}trigger(eventName,data){returnthis._eventBus.trigger(eventName,data)}off(eventName,fn){returnthis._eventBus.off(eventName,fn)}}exportdefaultEventBustable-drivenprogrammingtable-drivenapproach是一种允许您在表中查找信息而无需使用逻辑语句(if或case)来查找它们的方式。以上,可以通过表格选择任何信息。在简单的情况下,逻辑语句往往更简单、更直接。但随着逻辑链变得越来越复杂,表也变得越来越有吸引力。我如何理解模块化的模块化?一个项目一旦做出来,所有的代码都模块化了,这样可以更好的避免代码的直接影响。以后如果有什么新的添加或者修改,可以修改的更方便,或者以后再过一遍代码,快速理解代码的原意。
