0%

目前绝大部分语言都内置了迭代器,而当前开发中对于迭代器的使用也很是频繁。今天刚好看到迭代器相关文档,索性对此做下归纳和总结。

阅读全文 »

职责链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间 5 的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

阅读全文 »

cover.png

在过去,设计师负责设计,程序员负责编码。他们间互不干涉。但随着 CSS 中 transitions 和 animations 的到来,设计和编码的界限模糊了。设计师描述设计,而程序员把设计师的描述翻译成具体代码–这种合作模式不再像过去那么简单。为了高效地协作,设计师必须懂点代码,而程序员必须懂点设计。

阅读全文 »

封装属性访问器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Object.defineProperty(obj, prop, descriptor)
//obj ,待修改的对象
//prop ,带修改的属性名称
//descriptor ,待修改属性的相关描述
var obj = {};
Object.defineProperty(obj, "a", {
set: function (newVal) {
document.getElementById("a").value = newVal;
document.getElementById("b").innerHTML = newVal;
},
});

document.addEventListener("keyup", function (e) {
obj.a = e.target.value;
});
阅读全文 »

“数据变化->UI 变化”间的逻辑解耦已经完成,显而易见,在 web 前端层面,被观察者通常是数据模型,观察者通常是 web ui 组件。

在交互丰富的页面中(比如各种推广活动页),通常会有多个被观察者(每个 ajax 请求都对应一个被观察者),对应多个观察者(页面 ui 组件)。

随着数据模型复杂度的提高,这种多对多的关系整理起来会越来越复杂(被观察者会被多个观察者观察,观察者自然也有可能观察多个被观察者),所以,我们需要对此进行解决。

阅读全文 »