51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

前端开发

JS设计模式之适配器模式

JS设计模式之适配器模式

厉飞雨 阅读(365) 评论(0) 赞(17)

意图 {#意图} -------- > 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 > > ------《设计模式:可复用面向对象软件的基础》中文版第106页 值得注意的是,在JS中,我们对于数据类型的适配(把后端传来的JSON转成我们希望的格式)也应属于适配器的范畴,所以下文中分别叙述...

JS设计模式之装饰器模式

JS设计模式之装饰器模式

厉飞雨 阅读(278) 评论(0) 赞(17)

意图 {#意图} -------- > 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。 > > ------《设计模式:可复用面向对象软件的基础》中文版第132页 在Java中这样的设计可太多了,比如进行IO操作时的`XxxReader`,那么这里就模仿它进行一个应用。 示例 {#示例} -------- 如下: ...

JS设计模式之职责链模式

JS设计模式之职责链模式

厉飞雨 阅读(228) 评论(0) 赞(11)

意图 {#意图} -------- > 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连城一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 > > ------《设计模式:可复用面向对象软件的基础》中文版第167页 尤其是我们在处理不同类型的表单时,这个设计模式就能很好的派上用场。 示例 {#示例} ----...

JS设计模式之策略模式

JS设计模式之策略模式

厉飞雨 阅读(229) 评论(0) 赞(12)

意图 {#意图} -------- > 定义一系列算法, 把它们一个个封装起来,并且使它们可以相互替换。本模式使得算法可独立于使用它的客户而变化。 > > ------《设计模式:可复用面向对象软件的基础》中文版第234页 由于在JS中,函数是一等公民,所以我们这里直接把函数当作这一个个策略对象即可。 示例 {#示例} -------- 我们的编码目的...

JS设计模式之备忘录模式

JS设计模式之备忘录模式

厉飞雨 阅读(418) 评论(0) 赞(16)

意图 {#意图} -------- > 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 > > ------《设计模式:可复用面向对象软件的基础》中文版第212页 这个常常被运用于游戏存档、操作撤销等场景。 示例 {#示例} -------- 这是一个悲催的故事,内容是一个人先涨薪...

JS关于或运算符的问题

JS关于或运算符的问题

厉飞雨 阅读(219) 评论(0) 赞(12)

背景 {#背景} -------- 这是在**AVL树** 计算高度时遇到的问题。为了方便大家看到问题的本质,这里使用一个**单链表**复现问题。 我们有一个链表,并且把它的深度储存到了每一个节点里(所谓深度就是它拥有的子节点层数,对于一个链表而言就是它的**长度减一**)。 复现 {#复现} -------- 先一个个函数来实现一个简单的链表。不直接说的原因是我想让读...

JS防抖与节流

JS防抖与节流

厉飞雨 阅读(334) 评论(0) 赞(14)

源码 {#源码} -------- 前往[Codepen](https://codepen.io/kifuan/pen/vYdzpPz)在线体验。 介绍 {#介绍} -------- **防抖** 和**节流**是两个JS中的概念,它们被广泛应用于被频繁触发的事件中,如搜索框在输入时会弹出候选列表:如果每次输入都发送一个AJAX请求来获取数据,那么后台就要被刷爆了。所以,...

JS的函数和this

JS的函数和this

厉飞雨 阅读(433) 评论(0) 赞(24)

背景 {#背景} -------- 我没有系统性的从头开始学过一遍JS,全凭之前学的其它语言,尤其是Python,直接上手操作了,所以留了不少的坑。 虽然对我来说是一个坑,但我觉得本文更适合放到学习的分类里。 给出下列代码。这里是对原问题的一个抽象,只是把问题的核心单独摘出来了: |------------------------------------|-------...

JS写睡眠排序

JS写睡眠排序

厉飞雨 阅读(252) 评论(0) 赞(20)

<h2>实现 {#实现}</h2> <p>代码看起来很简单,这里就直接给出来了:</p> <p>|---------------------------------------------------|-----------------------------------------------------------...

JS统计中英文字数

JS统计中英文字数

厉飞雨 阅读(241) 评论(0) 赞(23)

源码 {#源码} -------- > 来自半年后的说明:我把代码转放到 gists 里了,当时代码风格受 Python 影响较大,这里就不再更改了,毕竟大家本地都有自己的格式化工具。 点击[这里](https://gist.github.com/hikariyo/b838dff3bdf0d280b25f50a66abd699c)前往Github获取本文源码。 需求...