摘要:
一、bind()函数的两个特性: 1、bind和curring,函数科里化 可以利用此种特性方便代码重用,如下,可以不同的页面中只需要配置某几项,前面几项固定的配置可以选择用bind函数先绑定好,讲一个复杂的函数拆分成简单的子函数。 2、bind和new 函数中的return除非返回的是个对象,否则 阅读全文
摘要:
装饰者模式提供比继承更有弹性的替代方案。 装饰者用于包装同接口的对象,不仅允许你向方法添加行为,而且还可以将方法设置成原始对象调用(例如装饰者的构造函数)。 装饰者用于通过重载方法的形式添加新功能,该模式可以在被装饰者前面或者后面加上自己的行为以达到特定的目的。 那么装饰者模式有什么好处呢?前面说了 阅读全文
摘要:
职责链模式(Chain of responsibility)是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。 也就是说,请求以后,从第一个对象开始,链中收到请求的对象要么亲自处理它,要么转发给链中的下一 阅读全文
摘要:
一、location的匹配规则 = 表示精确匹配。只有请求的url路径与后面的字符串完全相等时,才会命中。 ^~ 表示如果该符号后面的字符是最佳匹配,采用该规则,不再进行后续的查找。 ~ 表示该规则是使用正则定义的,区分大小写。 ~* 表示该规则是使用正则定义的,不区分大小写。 注意的是,nginx 阅读全文
摘要:
前端缓存,这是一个老生常谈的话题,也常被作为前端面试的一个知识点。今天我们再来总结一下。 分类:前端缓存分为强缓存和协商缓存两种。 一、强缓存 强缓存主要使用 Expires、Cache-Control 两个头字段,两者同时存在 Cache-Control 优先级更高。当命中强缓存的时候,客户端不会 阅读全文