1.MVC 三个对象分别做什么?
每个模块可以写成三个对象,分别是M、V、C。
- M-Model(数据模型)负责操作数据
- V-View(视图)负责图形UI界面
- C-Controller(控制器)负责操作。
var model = {
data: null,
init(){}
fetch(){}
save(){}
update(){}
delete(){}
}
view = {
init(){}
template:'<h1>hello</h1>'
}
controller = {
view: null,
model: null,
init(view, model){
this.view = view
this.model = model
this.bindEvents()
}
render(){
this.view.querySelector('name').innerText = this.model.data.name
},
bindEvents(){}
}
复制代码
2.EventBus 有哪些 API,是做什么用的?
当一个事件执行,eventBus 触发 m:updated eventBus.trigger('m:updated')
eventBus 监听 m:updated,当 m:updated 触发时,执行一些内容
eventBus.on('m:updated',()=>{
v.render(m.data.n)
})
复制代码
3.表驱动编程是做什么的?
表驱动编程,又称之为表驱动、表驱动法/表驱动方法。
“表”是几乎所有数据结构课本都要讨论的非常有用的数据结构。表驱动方法出于特定的目的来使用表,程序员们经常谈到“表驱动”方法,但是课本中却从未提到过什么是”表驱动”方法。表驱动方法是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或Case)来把它们找出来的方法。事实上,任何信息都可以通过表来挑选。在简单的情况下,逻辑语句往往更简单而且更直接。但随着逻辑链的复杂,表就变得越来越富有吸引力了,通过下面的这个例子大家就能知道什么是所谓的表驱动方法了。
//1.不使用表驱动,switch方式
let day = new Date().getDate()
console.log(typeof day)
switch (day){
case 0:
alert('今天是周日');
break;
case 1:
alert('今天是周一');
break;
case 2:
alert('今天是周二');
break;
case 3:
alert('今天是周三');
break;
case 4:
alert('今天是周四');
break
case 5:
alert('今天是周五');
break;
case 6:
alert('今天是周六');
break;
}
//2.不使用表驱动,使用if(else)
let day = new Date().getDate()
if (day === 0) {
alert('今天是周日');
} else if (day === 1) {
alert('今天是周一');
} else if (day === 2) {
alert('今天是周二');
} else if (day === 3) {
alert('今天是周三');
} else if (day === 4) {
alert('今天是周四');
} else if (day === 5) {
alert('今天是周五');
} else if (day === 6) {
alert('今天是周六');
}
//3.使用表驱动
const day = new Date().getDate()
const week = ['周日','周一','周二','周三','周四','周五','周六']
const dayNow = week[day]
alert(dayNow)//周二
复制代码
写文章的时候是周二,上面三种不同的方式结果都是一样的周二,在简单的情况下,逻辑语句往往更简单而且更直接。但随着逻辑链的复杂,表就变得越来越富有吸引力了,使用表驱动更有优势,代码行数更少。
4.我是如何理解模块化的?
模块化,主要是把相同功能的独立出来,然后再进行引用。引用的时候,不用关心内部,只需要知道功能直接可以使用,同时方便解耦,可以随时修改这个模块的功能,不影响其他的模块。
let string = `模块代码`
export defalut string//默认导出
import $ from string//需要的时候,直接导入模块
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END