上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页
摘要: 建造者模式(Builder Pattern) 定义:使用多个简单的对象一步一步构建成一个复杂的对象。 目的:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 场景:一些基本部件不会变,而其组合经常变化的时候。 // 声明一个产品类 class Product { constru 阅读全文
posted @ 2020-02-25 17:45 SKILL·NULL 阅读(139) 评论(0) 推荐(0) 编辑
摘要: /** * 比较两个时间的时间差 * @param startTime 开始时间 * @param endTime 结束时间 * @demo compareTime(new Date('2019-12-24 16:02').getTime(), new Date().getTime()) */ function compareTime (startTime, endTime) { var retV 阅读全文
posted @ 2019-10-24 19:16 SKILL·NULL 阅读(2963) 评论(0) 推荐(0) 编辑
摘要: /** * 监听浏览器标签页的显示与隐藏 */ class ListenerPageVisibility { constructor () { // 设置隐藏属性和改变可见属性的事件的名称 this.hidden = '' this.visibilityChange = '' if (typeof document.hi... 阅读全文
posted @ 2019-10-21 16:30 SKILL·NULL 阅读(1441) 评论(0) 推荐(0) 编辑
摘要: 单例模式(Singleton Pattern): 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 目的:阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。 场景:如一个系统中可以存在多个打印任务,但是同时只能有一个正在工作的任务。 例:JS代码实现 // 惰性单 阅读全文
posted @ 2019-10-16 20:42 SKILL·NULL 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 装饰模式(Decorator Pattern): 定义:在不改变原对象的情况下,动态的给对象添加一些额外的职责。就功能而言,装饰模式相比生成子类更为灵活。 目的:把类的核心职责和装饰功能区分开。可以去除相关类中重复的逻辑。 场景:当系统需要扩展一个类的功能,或者客户端需要动态的给一个对象添加功能,并 阅读全文
posted @ 2019-09-25 21:22 SKILL·NULL 阅读(167) 评论(0) 推荐(0) 编辑
摘要: // 滚动条位置 var scrollPosition = { // 位置 result: 0, // 监听位置 rememberPosition: function () { var type = 'scroll' var handle = function () { var scrollTop = win... 阅读全文
posted @ 2019-09-25 19:54 SKILL·NULL 阅读(2180) 评论(0) 推荐(0) 编辑
摘要: 先引用jquery、jszip、FileSaver,然后封装下载方法: 一、引用 <script src="lib/jquery-3.4.0.min.js"></script> <script src="lib/jszip.min.js"></script> <script src="lib/FileSaver.min.js"></script> 二、方法封装 var FunLib = { // 阅读全文
posted @ 2019-09-18 16:10 SKILL·NULL 阅读(2278) 评论(0) 推荐(0) 编辑
摘要: 策略模式(Strategy Pattern): 定义:定义了一族算法; 封装了每个算法; 这族的算法可互换代替。 目的:将算法的使用与算法的实现分离开来。 场景:可用来消除大量的条件分支语句。 例:JS代码实现 // 策略算法封装 let strategy = { add (number1, num 阅读全文
posted @ 2019-09-03 14:35 SKILL·NULL 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 工厂模式(Factory Pattern): 定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。 目的:工厂模式是为了解耦,把对象的创建和使用的过程分开。场景:需要生成复杂对象,需要降低耦合度的场景。 例子:JS代码实现 let operat 阅读全文
posted @ 2019-09-02 10:59 SKILL·NULL 阅读(295) 评论(0) 推荐(0) 编辑
摘要: /** * 深度比较两个对象是否相等 * @type {{compare: compareObj.compare, isObject: (function(*=): boolean), isArray: (function(*=): boolean)}} */ var compareObj = { // 比较两个对象是否相等 compare: function (oldDa... 阅读全文
posted @ 2019-08-30 18:00 SKILL·NULL 阅读(4473) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页
点击右上角即可分享
微信分享提示