一、引言

在js模块中,要给每一个功能封装一个匿名函数。为了更好的理解什么是匿名函数,为什么要用匿名函数,我做了一些查阅和学习。

二、匿名函数

什么是:在创建时,不被任何变量引用的函数。

为什么:节约内存;划分临时作用域,避免全局污染。

何时:只要一个函数只用一次,就释放。

1、回调

创建一个函数后,将函数对象传递给其他函数调用。

比如:

arr.sort(
functioin(a,b){return a-b}
); arr.replace(reg,function(){
return xxx;
})

2、自调

创建一个函数,然后立刻调用执行。执行后,立刻释放。

第一种:(常用)

(function(参数列表){
函数体;
return 返回值;
})(参数值);

何时:如果一项任务仅执行一次,且使用了仅属于当前任务的变量时,就要将变量和任务代码封装在一个匿名函数中,自调。

特别:这里创建了一个匿名函数(在第一个括号内),第二个括号用于调用该匿名函数,并传入参数。

第二种:

+function(参数列表){
……
}(参数值);

唯一问题:“+”和加法“+”冲突

三、总结

今后,所有代码,都应写在匿名函数中。框架里都是这么用的。每一个功能封装一个匿名函数。


注:转载请注明出处

【京东详情页】——原生js学习之匿名函数的更多相关文章

  1. 【京东详情页】——原生js爬坑之二级菜单

    一.引言 做京东详情页仿写的时候,要用原生js实现顶部菜单的二级菜单显示与隐藏事件的触发. 过程中遇到了一个坑,在这里与大家分享.要实现的效果如下: 二.坑 谁触发事件?显示.隐藏二级菜单       ...

  2. 【京东详情页】——原生js爬坑之放大镜

    一.引言 在商城的详情页中,放大镜的功能是很常见的.这里京东详情页就要做一个仿放大镜的效果,预览如下: 二.实现原理 实际上,放大镜的实现是单纯用几个div,鼠标移入其中一个小图div,触发事件显示另 ...

  3. js中的匿名函数和匿名自执行函数

    1.匿名函数的常见场景 js中的匿名函数是一种很常见的函数类型,比较常见的场景:   <input type="button" value="点击" id ...

  4. 【京东详情页】——原生js爬坑之标签页

    一.引言 要做详情页的商品评价等5个li的标签页转换,效果如下: 二.实现原理 有一个特别的地方:上面五个li,但下面只有四个容器(table/div). 设计的目的:无论点哪个li,只有前四个div ...

  5. 原生js学习 选择dom

    连bootstrap5 都抛弃jquery了,重新使用原生js来写,所以最近在学习原生js. 一.选择dom元素: id let sure=document.getElementById('sure' ...

  6. Python爬虫:新浪新闻详情页的数据抓取(函数版)

    上一篇文章<Python爬虫:抓取新浪新闻数据>详细解说了如何抓取新浪新闻详情页的相关数据,但代码的构建不利于后续扩展,每次抓取新的详情页时都需要重新写一遍,因此,我们需要将其整理成函数, ...

  7. python学习之---匿名函数,返回函数,偏函数

    1. 返回函数: 所谓的返回函数,指的是函数作为返回值.高阶函数除了可以接受函数作为参数外,同样可以接受函数作为结果返回.以下是一个可变参数的求和例子,一般求和函数是如此这般定义的: >> ...

  8. js中的匿名函数自执行

    随笔,java中因为有修饰符的存在,那就有private类的存在,js不一样,没有修饰词一说,因此为了防止全局变量的污染,js中就出现了匿名函数,直接上code,看到的人可以自己体会: (functi ...

  9. JS学习三(函数)

    [函数的声明格式] 1.函数的声明格式: function 函数名(参数1,参数2,...){ 函数体代码 return 返回值: } 函数的调用: ① 直接调用:函数名(参数1的值,参数2的值,.. ...

随机推荐

  1. BotVS数字货币现货交易类库

    以下是BotVS数字货币现货交易类库模板,使用Python2语言实现 import types # 导入类型模块 import time # 导入时间模块 import platform # 版本信息 ...

  2. 利用CoreAnimation实现一个时间的进度条

    (个人原创,转载请注明出处 http://www.cnblogs.com/pretty-guy/p/7460334.html) 在iOS中实现进度条通常都是通过不停的设置progress来完成的,这样 ...

  3. Sublime Text3 最常用快捷键

    软件快捷键再多,平时常用的也就那么几个,先总结如下: 全选:Ctrl+A 复制:Ctrl+C 粘贴:Ctrl+V 删除:Ctrl+X 快速复制到下一行:Ctrl+Shift+D 快速向上移动代码:Ct ...

  4. Struts:文件上传下载

  5. 2017年8月28日 HTML/CSS 语法(待填坑)

    今天这种节日真的是 ----------------------------------------------------------- HTML  

  6. Selenium 学习笔记(一)

    selenium 学习整理 初学者,如果有不当得地方请指出,非常感谢. 准备事项: 1. Python 安装包 安装Python,并勾选添加环境变量. 安装完成后,打开dos窗口,输入python,看 ...

  7. 记一次JavaWeb网站技术架构总结

    题记 工作也有几多年了,无论是身边遇到的还是耳间闻到的,多多少少也积攒了自己的一些经验和思考,当然,博主并没有太多接触高大上的分布式架构实践,相对比较零碎,随时补充. 俗话说的好,冰冻三尺非一日之寒, ...

  8. 浅谈MVC

    一.MVC的产生之源 MVC是Model.View.Controller这三个英文单词的缩写,从这三个单词的含义中我们可以看出MVC的核心是什么?显而易见,Model指的是模型,在某些地方你也可以理解 ...

  9. C# 导出数据到Excel模板中(转)

    今天做报表的时候遇到了多表头的问题,而且相应的报表的格式都一样.所以就采用了报表模板的方式来进行. 第一步:在开发的当前项目中引入:Microsoft.Office.Interop.Excel:Sys ...

  10. iOS block和代理的区别

      block和代理是iOS开发中实现回调的两种方式,大多数情况下是用哪个都可以,主要看个人喜好.本文主要是对两者做一下对比. 1.block简介   在 iOS中, block一共分三种.   (1 ...