当前位置: 首页 > news >正文

展览公司网站建设中国城乡建设部网站证书查询

展览公司网站建设,中国城乡建设部网站证书查询,企业邮箱在哪里查看,vi系统设计是什么目录闭包与高阶函数Function 扩展函数柯里化函数单例模式透明的单例模式惰性单例策略模式策略模式发展策略模式实现闭包与高阶函数 Array.prototype.sort 接受一个函数当作参数#xff0c;用户可以自行在该函数内指定排序方式 // 由小到大排序 let res [1, 4, 2].sort((a, … 目录闭包与高阶函数Function 扩展函数柯里化函数单例模式透明的单例模式惰性单例策略模式策略模式发展策略模式实现闭包与高阶函数 Array.prototype.sort 接受一个函数当作参数用户可以自行在该函数内指定排序方式 // 由小到大排序 let res [1, 4, 2].sort((a, b) {return a - b; }); console.log(res);Function 扩展函数 通过对 Function 原型执行扩展可以达到类似装饰器的效果这也是 AOP 风格的体现 Function.prototype.before function (beforefn) {var __self this; // 保存原函数的引用return function () {// 返回包含了原函数和新函数的代理函数beforefn.apply(this, arguments); // 执行新函数修正thisreturn __self.apply(this, arguments); // 执行原函数}; };Function.prototype.after function (afterfn) {var __self this;return function () {var ret __self.apply(this, arguments);afterfn.apply(this, arguments);return ret;}; };var func function () {console.log(2); };func func.before(function () {console.log(1);}).after(function () {console.log(3);});func(); // 1,2,3柯里化函数 currying 又称部分求值。一个 currying 的函数首先会接受一些参数接受了这些参数之后该函数并不会立即求值而是继续返回另外一个函数刚才传入的参数在函数形成的闭包中被保存起来。待到函数被真正需要求值的时候之前传入的所有参数都会被一次性用于求值 var currying function (fn) {var args [];// 当调用柯里函数时不带任何参数直接执行所有栈中函数// 当调用柯里函数时带入了参数就会向args压入一个新的带参函数return function () {if (arguments.length 0) {return fn.apply(this, args);} else {[].push.apply(args, arguments);return arguments.callee;}}; };// 将cost写成一个IIFE函数之后其将转变为柯里函数 var cost (function () {var money 0;return function () {for (var i 0, l arguments.length; i l; i) {money arguments[i];}return money;}; })();var cost currying(cost); // 转化成currying函数cost(100); // 未真正求值 cost(200); // 未真正求值 cost(300); // 未真正求值 alert(cost()); // 求值并输出600单例模式 透明的单例模式 传统单例模式需要你知道当前对象是单例的且可以调用 getInstance 方法获取其实例 可以使用代理的方式管理单例而对象本身不处理代理相关逻辑 var CreateDiv function (html) {this.html html;this.init(); };CreateDiv.prototype.init function () {var div document.createElement(div);div.innerHTML this.html;document.body.appendChild(div); };// 使用代理创建以及识别单例 var ProxySingletonCreateDiv (function () {var instance;return function (html) {if (!instance) {instance new CreateDiv(html);}return instance;}; })();var a new ProxySingletonCreateDiv(sven1); var b new ProxySingletonCreateDiv(sven2);alert(a b); // true惰性单例 将获取单例的方法单独抽离出来通过此方法获取对象的单例 var getSingle function (fn) {var result;return function () {return result || (result fn.apply(this, arguments));}; };策略模式 策略模式的目的就是将算法的使用与算法的实现分离开来 策略模式发展 假设有这么一个场景需要通过员工名字及其薪水计算奖金 经典方法需要每次接收对应的两个参数方法内需要大量的 ifelse 做逻辑覆盖并且缺乏弹性违背开闭原则 策略模式实现 var strategies {S: function (salary) {return salary * 4;},A: function (salary) {return salary * 3;},B: function (salary) {return salary * 2;}, };var calculateBonus function (level, salary) {return strategies[level](salary); };console.log(calculateBonus(S, 20000)); // 输出80000 console.log(calculateBonus(A, 10000)); // 输出30000
http://www.hkea.cn/news/14456452/

相关文章:

  • 做淘宝浏览单的网站前端做网站需要学什么
  • 信诚网络公司网站小程序公众号网站开发
  • 做网站时遇到的问题网站开发的业务需求分析
  • 盐城做百度网站搭建网站团队计划
  • 网站的中英文切换代码网站页面相似度检测
  • 南昌定制网站开发费用网站设计工程师
  • 常德做网站报价公司做网站都咨询哪些问题
  • 做宠物商品的网站怎么做网站
  • 企业网站宽度给多少漳州网站优化
  • vultr做网站做图片网站侵权吗
  • 怎么做网站信息留下自己的wordpress
  • 网站热力图工具泉州制作网站公司
  • 西部数码网站建设软件开发各阶段工作量比例
  • cms做的电影网站中国世界排名变化
  • 网站的系统建设方式有经验的高密网站建设
  • 网站开发流程指什么订阅号怎么做网站
  • 天津市建设监理协会网站锦州网站建设信息
  • 做短连接的网站修改wordpress登录框
  • wordpress 中文网站一元购网站建设流程
  • 乐达网站建设怎么自己做网站服务器
  • 怎样给自己的网站做优化哈尔滨seo网站管理
  • 网站做系统叫什么济南哪个网络公司建网站好
  • 开发一个网站的步骤流程门户网站改版方案
  • 网站数据库连接不上的常见问题wordpress page links to
  • 做调查问卷的网站百度云虚拟主机搭建wordpress
  • 网站建设ftp软件有哪些网页设计学校官网代码
  • 网站备案号查不到服装网站建设公司哪家好
  • 网站制作及排名优化wordpress防止图片被采集
  • 大庆网站建设wordpress ueditor 代码 转义
  • 不同网站对商家做o2o的政策品牌建设论文参考文献