摘要:Date对象有个getDay方法,它根据本地时间,返回一个具体日期中一周的第几天。返回值从0~6,分别对应周日~周六getDay0123456星期几周日周一周二周三周四周五周六用到日期相关的需求时需要将getDay返回的值转成星期几,即“这一天”是星期几?比如日历组件中选择日历后返回 “2014-1...
阅读全文
摘要:首先,有个单例对象,它上面挂了很多静态工具方法。其中有一个是each,用来遍历数组或对象。var nativeForEach = [].forEachvar nativeMap = [].mapvar util = { each: function (obj, iterator, context) { if (obj == null) return if (nativeForEach && obj.forEach === nativeForEach) { obj.forEach(iterator, context) } else...
阅读全文
摘要:Mixin是JavaScript中用的最普遍的模式,几乎所有流行类库都会有Mixin的实现。Mixin是掺合,混合,糅合的意思,即可以就任意一个对象的全部或部分属性拷贝到另一个对象上。从提供的接口来看,有的是对对象的操作,有的是对类的操作。对类的操作又称为掺元类(Mixin classes)一、掺合...
阅读全文
摘要:Facade Pattern 国内有些书译为门面模式,如「Java与模式」,「JavaScript设计模式」。有些则译为外观模式,如「设计模式:可复用面向对象软件的基础」,「Java设计模式」。这里使用名词“外观模式”。外观模式属于接口型模式,它提供一个更方便,高层接口,使用一致性的界面使得API更加容易使用。它有两个作用:简化复杂接口解耦和,屏蔽客户端对子系统的直接访问外观模式在JavaScript中被众多类库频繁使用。由于早期各浏览器提供的API差异性较大,类库的基本作用之一是扫平这些凹凸不平,提供统一接口供前端工程师使用。使用外观模式,我们可以间接地与一个复杂子系统打交道,与直接访问相比
阅读全文
摘要:工厂模式也是对象创建模式之一,它通常在类或类的静态方法中去实现。构造对象的一种方式是使用new操作符,但使用new时正是针对实现编程,会造成“耦合”问题,与具体的类关系紧密。导致代码更脆弱,缺乏弹性,在复杂逻辑的项目中建议是面向接口编程。先看简单工厂模式Person(name, age) { var obj = {} obj.name = name obj.age = age return obj}var p1 = Person('jack', 25)var p2 = Person('lily', 22)与构造函数方式写一个类的区别在于没有使用this,而是每次
阅读全文
摘要:首先,单例模式是对象的创建模式之一,此外还包括工厂模式。单例模式的三个特点:1,该类只有一个实例2,该类自行创建该实例(在该类内部创建自身的实例对象)3,向整个系统公开这个实例接口Java中大概是这个样子class Singleton { //私有,静态的类自身实例 private static Singleton instance = new Singleton(); //私有的构造子(构造器,构造函数,构造方法) private Singleton(){} //公开,静态的工厂方法 public static Singleton getInstance() { return ins...
阅读全文