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

福田网站建设龙岗网站建设东莞松山湖网站建设

福田网站建设龙岗网站建设,东莞松山湖网站建设,aws个人免费版,中学校园网网站建设规划书#xff08;1#xff09;函数可以作为参数被传递 #xff08;2#xff09;函数可以作为返回值输出 4-1.函数作为参数传递 Array.prototype.sort方法#xff1a; var array [10,5,12,3];array.sort();//array:[10,12,3,5]//如代码那样#xff0c;排序的结果并不是我们想要…1函数可以作为参数被传递 2函数可以作为返回值输出 4-1.函数作为参数传递 Array.prototype.sort方法 var array [10,5,12,3];array.sort();//array:[10,12,3,5]//如代码那样排序的结果并不是我们想要的这与sort函数的比较规则有关系array.sort(function(a,b){return a-b;});//array:[3,5,10,12]传入一个比较的函数就可以按照数字大小的规则进行正确的比较了。 4-2.函数作为返回值输出 var getSingle function ( fn ) {var ret;return function () {return ret || ( ret fn.apply( this, arguments ) );};}; 4-3.函数作为参数被传递并且返回另一个函数 var getScript getSingle(function(){return document.createElement( script );});var script1 getScript();var script2 getScript();alert ( script1 script2 ); // 输出true 4-4.高阶函数应用 1高阶函数实现AOP AOP面向切面编程的主要作用是把一些跟核心业务逻辑模块无关的功能抽离出来这些业务逻辑无关的功能包括日志统计、控制安全、异常处理等。把这些功能抽离出来之后再通过“动态织入”的方式掺入业务逻辑模块中。 下面代码通过扩展Function.prototype来实现把一个函数“动态织入” 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();2柯里化 一个currying函数首先会接受一些参数接受了这些参数之后该函数不会立即求值而是继续返回另外一个函数刚才传入的参数在函数形成的闭包中被保存了下来。待到函数真正需要求值的时候之前传入的所有参数都会一次性用于求值。 一个经典的柯里化 function curry(fn){var arr1 Array.prototype.slice.call(arguments,1);return function(){var arg2 Array.prototype.slice.call(arguments);var array arr1.concat(arr2);return fn.apply(null,array);}}不断累积的柯里化 var currying function( fn ){var args [];//外层函数变量用来累积return function(){if ( arguments.length 0 ){return fn.apply( this, args );}else{[].push.apply( args, arguments );return arguments.callee;}}}; 3uncurrying 在javascript中当我们调用对象的某个方法时其实不用关心对象原本是否被设计为拥有这个方法这是动态类型语言的特点也就是常说的鸭子类型思想。 同理一个对象也未必只能使用它自己的方法其实可以借用原本不属于他的方法 call apply Function.prototype.uncurrying function () {var self this;return function() {var obj Array.prototype.shift.call( arguments );return self.apply( obj, arguments );};};var push Array.prototype.push.uncurrying(); var obj {length: 1,0: 1 };push( obj, 2 );//将2使用push的方法作用到obj上 console.log( obj ); // 输出{0: 1, 1: 2, length: 2}
http://www.hkea.cn/news/14500672/

相关文章:

  • 西安网站建设企业wordpress 清空修订版本
  • 烟台网站制作策划做牙工作网站
  • 西宁做网站多少钱肥猫网站建设
  • 下载资料免费网站搜狗网站收录提交入口
  • 沈阳做网站哪个好网站qq临时会话不需要添加好友
  • 网站建设公司有哪些重要职务域名购买备案
  • 湖畔魔豆基金会公益网站开发移动互联网开发招人
  • 辽宁省建设工程信息网如何传业绩北京网站seo排名优化
  • 自己做网站怎么选架构wordpress音乐墙
  • 网站建设新闻++常识做购物网站安全吗
  • 网站设置访问密码云盘网站如何做
  • 网站权重有什么用做防伪查询网站
  • 人才招聘网站建设电子菜单制作app
  • 家具网站建设便宜广州网站建设 粤icp
  • 常州网站推广软件合肥建设公司网站
  • 用reset插件 复位WordPress佛山网站优化效果
  • 千博企业网站创办一个网站能够做那些事
  • 网站线框图怎样做东莞阳光网投诉查看
  • 招工网站58同城企业所得税交多少
  • 东莞市建设公共交易中心网站南宁大型网站建设
  • 具有价值的网站建设平台wordpress热门插件
  • 百度排名 网站标题wordpress cms模板制作
  • 怎样做的英文网站金融保险网站模板
  • 东莞销售网站公司哪家好怎样推广自己的网站
  • 如何做适合网站大小的图片福州专业的seo软件
  • 平原网站建设公司网络营销的策划流程
  • 自己做有趣的网站wordpress怎么删除目录
  • 二级a做爰片免费视网站网站建设部分费用会计科目
  • 精品课程网站设计报告化工类网站建设推广
  • 济南网站制wordpress 闭站