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

现在建设一个网站需要什么技术百度网站打开

现在建设一个网站需要什么技术,百度网站打开,wordpress转app,家具设计公司(1)函数可以作为参数被传递 (2)函数可以作为返回值输出 4-1.函数作为参数传递 Array.prototype.sort方法: var array [10,5,12,3];array.sort();//array:[10,12,3,5]//如代码那样,排序的结果并不是我们想要…

(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;}}};

(3)uncurrying

在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/666830/

相关文章:

  • 凡科建设网站的步骤永久免费无代码开发平台网站
  • 建设一个百度百科类网站网站排名优化的技巧
  • 自己做网站可以吗淄博做网站的公司
  • 个人做健康网站好吗宁波网站制作与推广价格
  • 长沙有哪些做网站的连云港seo优化公司
  • 青羊区定制网站建设报价搜索引擎营销方案
  • 淘宝优惠券查询网站怎么做域名备案官网
  • wordpress自定义url优化教程网下载
  • 模板网站和定制网站百度搜索引擎的网址
  • 企业建设网站公司哪家好app拉新推广接单平台
  • 老虎淘客系统可以做网站吗江西省水文监测中心
  • 高港区企业网站建设快速建站教程
  • 怎样写企业网站建设方案北京网站seo招聘
  • 做蛋糕视频的网站软文广告范文
  • h5自适应网站模板下载网站换友链平台
  • 政府网站建设及管理规范各大搜索引擎入口
  • poedit pro wordpress免费网站推广优化
  • 市场营销产品推广策划方案seo合作代理
  • 东莞专业网站建设推广搜索引擎网络排名
  • 服务器做网站用什么环境好销售营销方案100例
  • 如何做DJ网站英文seo外链
  • 网站统计源码下载百度推广的步骤
  • 本地网站建设seo推广的方法
  • 东莞好的网站建设效果seo和sem分别是什么
  • 最新版wordpress背景手机网络优化软件
  • 丛台企业做网站推广免费建一级域名网站
  • 集宁网站建设免费网站推广网站破解版
  • 网站建设域名的购买有域名和服务器怎么建网站
  • 深圳有什么网站长沙百度seo
  • 台州企业网站模板建站怎么在百度上做公司网页