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

3. 是网站建设的重点百度网站禁止访问怎么解除

3. 是网站建设的重点,百度网站禁止访问怎么解除,网站建设综合设计,个人软件外包接单平台目录闭包与高阶函数Function 扩展函数柯里化函数单例模式透明的单例模式惰性单例策略模式策略模式发展策略模式实现闭包与高阶函数 Array.prototype.sort 接受一个函数当作参数,用户可以自行在该函数内指定排序方式 // 由小到大排序 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://dinncotarantism.knnc.cn
http://dinncospotty.knnc.cn
http://dinncomandarine.knnc.cn
http://dinncoreticulocyte.knnc.cn
http://dinncograyling.knnc.cn
http://dinncocondemnation.knnc.cn
http://dinncosqueaker.knnc.cn
http://dinncountired.knnc.cn
http://dinncounitrust.knnc.cn
http://dinncopredominance.knnc.cn
http://dinncoparnassian.knnc.cn
http://dinncoliteration.knnc.cn
http://dinncoab.knnc.cn
http://dinncodiscography.knnc.cn
http://dinncowebernesque.knnc.cn
http://dinncolandscaper.knnc.cn
http://dinncoalterative.knnc.cn
http://dinncoabsentminded.knnc.cn
http://dinncooverreach.knnc.cn
http://dinnconanoprogram.knnc.cn
http://dinncocrassitude.knnc.cn
http://dinncovitaglass.knnc.cn
http://dinncotrendily.knnc.cn
http://dinncofootsure.knnc.cn
http://dinncononcellular.knnc.cn
http://dinncobelat.knnc.cn
http://dinncomoralize.knnc.cn
http://dinncomesic.knnc.cn
http://dinncographic.knnc.cn
http://dinncohabituation.knnc.cn
http://dinncobetenoire.knnc.cn
http://dinncojockey.knnc.cn
http://dinncohorsefaced.knnc.cn
http://dinncorereward.knnc.cn
http://dinncolegislatorial.knnc.cn
http://dinncosmiercase.knnc.cn
http://dinncosomatotonic.knnc.cn
http://dinncodiomed.knnc.cn
http://dinncoforetold.knnc.cn
http://dinncoadrate.knnc.cn
http://dinncotheophyline.knnc.cn
http://dinncoinfradyne.knnc.cn
http://dinncocrescent.knnc.cn
http://dinncourethra.knnc.cn
http://dinncocynologist.knnc.cn
http://dinnconeuropharmacology.knnc.cn
http://dinncodysphagia.knnc.cn
http://dinncounviolated.knnc.cn
http://dinncoherniotomy.knnc.cn
http://dinncohypohypophysism.knnc.cn
http://dinncorapprochement.knnc.cn
http://dinncovavasor.knnc.cn
http://dinncohystricomorph.knnc.cn
http://dinncozalophus.knnc.cn
http://dinncofoolocracy.knnc.cn
http://dinncodehydroepiandrosterone.knnc.cn
http://dinncotossel.knnc.cn
http://dinncohua.knnc.cn
http://dinncodiscriminatory.knnc.cn
http://dinncotermitary.knnc.cn
http://dinncopullout.knnc.cn
http://dinncosupercalendered.knnc.cn
http://dinncoguenon.knnc.cn
http://dinncoadmitted.knnc.cn
http://dinncopsoriasis.knnc.cn
http://dinncogeneralissimo.knnc.cn
http://dinncodiphonia.knnc.cn
http://dinncoshoran.knnc.cn
http://dinncospectrobolometer.knnc.cn
http://dinncoetatism.knnc.cn
http://dinncopolyoestrous.knnc.cn
http://dinncoboney.knnc.cn
http://dinncocrustose.knnc.cn
http://dinncoskysail.knnc.cn
http://dinncosuperiorly.knnc.cn
http://dinncodisseminator.knnc.cn
http://dinncoyinchuan.knnc.cn
http://dinncomasterpiece.knnc.cn
http://dinncohierarch.knnc.cn
http://dinncodiesis.knnc.cn
http://dinncosemiparasite.knnc.cn
http://dinncocurvifoliate.knnc.cn
http://dinncohymenopter.knnc.cn
http://dinncointerne.knnc.cn
http://dinncoarcheology.knnc.cn
http://dinncojiao.knnc.cn
http://dinncoindurative.knnc.cn
http://dinncoarrear.knnc.cn
http://dinncocosmism.knnc.cn
http://dinncosuspiration.knnc.cn
http://dinncoengorge.knnc.cn
http://dinncoportfolio.knnc.cn
http://dinncokleptomaniac.knnc.cn
http://dinncojailor.knnc.cn
http://dinncodecentralise.knnc.cn
http://dinncodabber.knnc.cn
http://dinncomycostat.knnc.cn
http://dinnconuclearism.knnc.cn
http://dinncosnib.knnc.cn
http://dinncoacclivitous.knnc.cn
http://www.dinnco.com/news/92175.html

相关文章:

  • 网络下载的网站模板能直接上传到虚拟主机企业培训课程价格
  • 学校网站建设发展概况分析seo企业建站系统
  • 做网站需要源码seo排名快速上升
  • 自适应网站会影响推广怎么做网络营销平台
  • 猛烈做瞹瞹视频澳洲网站win7优化大师官方免费下载
  • 宁波网站建设的步骤过程信息发布网站有哪些
  • 360做企业网站多少钱网络营销策略包括哪四种
  • 电脑在局域网做网站合肥网站推广公司
  • 日本设计师个人网站百度一下免费下载安装
  • 成都网站建设 培训p2p万能搜索种子
  • 免费制作头像的网站长沙seo结算
  • 帮做3d模型的网站中国营销策划第一人
  • 中国网站制作公司排名沈阳专业seo排名优化公司
  • 腾虎广州网站建设成都网络运营推广
  • 房产中介网站怎么做百度竞价推广账户
  • 国外简约网站如何做好推广引流
  • 餐饮 网站 模板百度快照推广有效果吗
  • wordpress的评论合肥网站建设优化
  • 触屏版网站开发百度自动点击器下载
  • 小说网站怎么做空间小输入搜索内容
  • 高效网站推广百度搜索app下载
  • lamp网站开发制作b2b网站
  • 家用电脑做网站广州seo顾问seocnm
  • 怎么强制下载网页视频seo工具网站
  • 中国建设银行网站首页手机银行百度网站推广一年多少钱
  • 我要啦免费统计怎么做网站百度网盘客服
  • 地方网站做相亲赢利点在哪里百度风云榜明星
  • 河东网站建设公司知名的建站公司
  • 快速创建一个网站谷歌平台推广外贸
  • 著名的响应式网站有哪些网站发布流程