当前位置:首页 > 日记 > 正文

Javascript是您的高阶函数(高级应用程序)。

Javascript是您的高阶函数(高级应用程序)。
在通常的编程语言中,一个函数的参数只能是一个基本类型或对象引用,并返回值只是一个基本数据类型或对象引用。但在Javascript,作为一个一流的公民可以作为参数或返回一个返回值传递。所谓的高阶功能是使用一个函数作为参数,或使用一个函数作为一个函数,返回一个值。这两种情况有很多在实际开发中的应用情况。本文是我在工作和学习中遇到的几种应用场景的总结。

回调函数

代码复用是测量应用的一个重要标准。代码的可重用性,可以通过回调函数将改变业务逻辑有效改善。例如,foreach方法是添加到ES5数组,遍历数组的每个元素,和相同的函数调用。
数组{ };
array.foreach =功能(ARR,FN){
对于(var i = 0,len = arr.length;我< len;i++){
FN(ARR {我},我,ARR);
}
}
业务的重点集中在回调函数的回调函数中,而不必每次重复遍历代码。

部分功能

作为返回值的函数的一个典型应用是一个局部函数,部分函数指的是使用一个函数创建一个调用另一部分的函数,这个参数或变量已经预先设定。偏函数最典型的例子是类型判断。

所有的Javascript对象有三个属性:原型属性,类属性、可扩展性。(未知的学生回到犀牛,哦,页:138)属性是一个字符串,Javascript不直接提供,但我们可以用object.prototype.tostring间接得到它。函数始终返回以下形式:

{对象类}

所以我们可以写一个系列的类型的功能。

代码如下:

isstring =功能(obj){
返回object.prototype.tostring.call(obj)={对象的字符串};
}
isnumber =功能(obj){
返回object.prototype.tostring.call(obj)={对象编号};
}
ISArray =功能(obj){
返回object.prototype.tostring.call(obj)={对象数组};
}
大多数代码是重复的,高阶函数是华丽的。
类型=功能(型){
返回功能(obj){
返回object.prototype.tostring.call(obj)= {对象+类型+ };
}
}

isstring =类型('String');
isnumber =类型(数的);
ISArray =类型('array);
因此,通过指定一些参数来返回一个新的自定义函数,它是一个局部函数。
加脂(柯丽华)

阿谀奉承也叫做局部评价,腐熟功能先接受一些参数。接受这些参数后,函数不会立即进行评估,而是继续返回到另一个函数。刚刚传递的参数保存在函数形成的闭包中。当一个函数确实需要求值时,所有的前入参数都将用于一次求值。
VaR钻营=功能(Fn){
var args = { };

返回函数(){
如果(arguments.length = 0){
返回fn.applay(这,args);
{人}
args = args.concat(参数);
返回arguments.callee;
}
}
}
假设我们用一个月的时间来计算一个月的成本:
VaR钻营=功能(Fn){
调试器;
var args = { };

返回函数(){
如果(arguments.length = 0){
返回fn.apply(这,args);
{人}
Array.prototype.push.apply(参数,参数);
返回arguments.callee;
}
}
}

成本=函数(){
var总和= 0;
对于(var i = 0,len = arguments.length;我< len;i++){
总和=参数{ };
}

收起回复;
}
可变成本=腐熟(成本);

成本(100);
成本(200);
警报(费用)
事件节流

在某些情况下,某些事件可能引发反复,但事件处理函数不需要执行一次。例如,在window.resize事件复杂的逻辑,如果用户频繁改变浏览器的大小,复杂的计算会对性能产生严重的影响;有时这些逻辑运算不需要每个rezise触发器,只有数量有限的时间可以计算的。在这一点上我们需要忽略一些事件请求根据时间段。请看下面的节流作用:
功能节流阀(FN,间隔){
var = false;

返回函数(){
如果(做){
返回;
}
做=真的;
Fn.apply(这个参数);
setTimeout(){()函数(
做=假;
},区间);
}
}

window.onresize =节流(函数(){()
console.log('execute);
},500);
通过控制函数的执行时间,对函数的数量和功能需求之间的完美平衡是可以实现的。另一件事是MouseMove。如果我们将事件绑定到一个DOM元素,事件将触发多次当鼠标移动在改性元素。

事件结束

对于一些可以频繁触发的事件,有时我们希望在事件结束后进行一系列操作,此时我们可以使用高阶函数进行以下处理:

功能消抖(FN,间隔){
var定时器= null;

函数延迟(){
var目标=;
var args =参数;
setTimeout()函数返回((){
fn.apply(目标,args);
},区间);
}

返回函数(){
如果(定时器){
ClearTimeout(定时器);
}

定时器= delay.apply(这个参数);
}
};
window.onresize =节流(函数(){()
console.log('resize结束);
},500);

如果事件在这个过程中触发,则最后一个事件句柄被清除,执行时间被重新绑定。

参考材料uff1a

节点

Javascript设计模式和开发实践

相关文章

教你在WPS文本教程中删除空白页

教你在WPS文本教程中删除空白页

删除,文本,教程,教你,空白页,WPS出现空白页是你经常遇到的问题。不同的用例方法是不同的。萧边收集所有的WPS的方式删除空白页。你可以按照以下方法解决这些问题。 方法1: 直接把鼠标放在空白页点退格键();关键是删除。 方法2: 将光标放在空白页…

PS鼠标绘制精美逼真美观笔记本

PS鼠标绘制精美逼真美观笔记本

鼠标,绘制,逼真,美观,精美,本教程主要是介绍朋友记事本的方法,PS鼠标绘制精美写实,美观,画出来的记事本教程很漂亮,不是很难,推荐,爱好朋友一起学习。 本教程教学习者使用PS鼠标绘制PS鼠标,绘制精美逼真的教程,画出笔记本记事本,非常漂亮,绘图难度大…

PS制作非常逼真美观的折叠字

PS制作非常逼真美观的折叠字

折叠,逼真,美观,电脑软件,PS,本教程是向朋友介绍ps,制作一个非常生动和美丽的折叠方法。教程生成的字体非常逼真,很难。建议你喜欢你的朋友一起学习。 如何制作一个现实的折叠词在我们的身边经常可以看到字体的一些广告,往往与众不同,而这些话…

CDR只需绘制太地效应图

CDR只需绘制太地效应图

效应,绘制,只需,电脑软件,CDR,本教程是介绍给朋友们的CDR简单绘图Tai Chi效果图,教程很不错,推荐给喜欢的朋友看看吧。 本教程将介绍CDR以一种简单的方式绘制太地效应,首先完成绘图。 非常简单的Tai Chi,初学者只需要四个步骤来完成。…

获得当前的时区偏移信息()方法在Java

获得当前的时区偏移信息()方法在Java

方法,详解,时区,电脑软件,Javascript,Javascript date.gettimezoneoffset()方法返回当前区域在几分钟的时间偏移量区。时区偏移量小于一分钟,与格林尼治标准时间(GMT)是相对于你的本地时间。 例如,如果时区是格林尼治标准时间10,则会返回- 600。夏令时…

默认情况下,如何运行Word打开最后一

默认情况下,如何运行Word打开最后一

运行,文档,默认,常见问题,情况下,问:你不知道最近该怎么办。打开Word时出现的默认文档不是空白文档,而是最后一个。这是比较麻烦的。有必要手动点击新按钮创建一个空白文档,因为打开的最后一个文档很容易显示它的隐私。我该如何解决这种情况呢…

PS如何保存不规则形状的

PS如何保存不规则形状的

不规则,形状,电脑软件,PS,PS如何保存不规则形状的图片大多数的图片都是长方形的,但是你可能需要一些不规则的照片。例如,如果你想在PPT上插入你DIY的图片,我们怎么能在PS中得到这样的图片呢让我们一起来看看吧。 网络上的大部分图片都是长方形…

PS色彩过滤出美丽清爽的夏日色调

PS色彩过滤出美丽清爽的夏日色调

色调,过滤,清爽,夏日,色彩,本教程是向朋友介绍PS色彩过滤器,并提出一个清爽的夏日色彩方法。教程的语气很美,难度也不大。建议你喜欢你的朋友一起学习。 本教程教ps照片处理。学习者使用PS滤色镜来显夏色。本教程一般比较难,制作的颜色也很漂…

浅谈javascript字符串和数组

浅谈javascript字符串和数组

数组,字符串,浅谈,电脑软件,javascript,Javascript字符串 字符串是一组字符,包括英文字母、标点符号、特殊符号、汉字等。 在Javascript中,一个字符串可以用双引号( )或一个引号()表示。 双引号和单引号必须成对出现。双引号可以包含单引号,单引号也可以包…

QQ空间的道具是如何给朋友的QQ常见

QQ空间的道具是如何给朋友的QQ常见

常见问题,空间,给朋友,道具,电脑软件,QQ空间道具给出的条件:我必须有在我的道具中的转让许可证的道具。 QQ空间礼品赠送:QQ号码输入道具不限于QQ好友。为了您的QQ财产安全,请妥善保存QQ密码。 QQ空间道具赠送方法: 第1步:登录到你的QQ空间,点击…

四种方法教你快速找到重复数据采用

四种方法教你快速找到重复数据采用

重复数据,教程,方法,教你,四种,在许多情况下,我们需要在excel表单中整理一些数据,特别是相同的数据。我们需要找出它并将其删除。但是在两栏中,单元格的光线是很难分辨的,但也很苛刻,为什么不尝试使用excel公式中相同的数据自动解析呢这里有4种…

excel表格保护方法百科全书Excel表

excel表格保护方法百科全书Excel表

方法,百科全书,表格,电脑软件,excel,excel表格在我们的工作中经常使用,它经常涉及统计数据等敏感问题,因此,对excel表格的保护也是经常遇到的问题,如何使用excel。我们用excelldquo工具;菜单提供了保护片和保护工作簿功能。还有其他办法吗 用宏;…