前端知识点理解
来源:互联网 发布:网络淘宝兼职可信吗 编辑:程序博客网 时间:2024/06/09 17:19
一. 闭包
(1)定义
简单来说,假设函数A在函数B的内部进行定义了,并且当函数A在执行时,访问了函数B内部的变量对象,那么B就是一个闭包。
(2)应用
a. 延迟调用函数(定时函数,onclick函数等)
function test(){ for(var i=1; i<=5; i++){ var timer = function timer(){ console.log("i: " + i); }; setTimeout(timer,i*1000); } } test();
输出为6,6,6,6,6
通过使用闭包,可输出1,2,3,4,5
function test(){ for(var i=1; i<=5; i++){ var timer = (function timer(i){ console.log("i: " + i); })(i); setTimeout(timer,i*1000); } } test();
b.柯里化
在计算机科学中,柯里化(英语:Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
闭包的我们之前已经接触到,先说说柯里化。柯里化就是预先将函数的某些参数传入,得到一个简单的函数,但是预先传入的参数被保存在闭包中,因此会有一些奇特的特性。
var adder = function(num){ return function(y){ return num + y; }}var inc = adder(1);var dec = adder(-1);
inc/dec 两个变量事实上是两个新的函数,可以通过括号来调用,比如下例中的用法:
//inc, dec现在是两个新的函数,作用是将传入的参数值(+/-)1print(inc(99));//100print(dec(101));//100print(adder(100)(2));//102print(adder(2)(100));//102
c.模块
var module1 = (function(){ var _count = 0; var m1 = function(){ //... }; var m2 = function(){ //... }; return { m1 : m1, m2 : m2 }; })();
javascript模块化
0 0
- 前端知识点理解
- 加深对前端知识点的理解
- 【前端知识点】关于跨域的理解及解决方法
- 前端知识点
- 前端知识点
- 前端知识点
- 前端知识点
- 【前端】前端小知识点
- 前端小知识点总结
- 前端基础知识点
- web前端知识点整理
- 前端工程师必需知识点
- 前端面试知识点
- 前端知识点大全
- 前端知识点笔记
- 前端开发知识点
- 前端知识点 总结
- 前端开发知识点总结
- android开发注释规范
- adb快速截图小脚本
- js往后台传路径问题
- 【程序49】 题目:计算字符串中子串出现的次数
- docker-compose.yml 语法说明
- 前端知识点理解
- 借助jgrid控件分页查询
- CSS3背景属性和CSS3的渐变
- (8) hadoop 常见错误
- Visual Studio 20周年软件趋势随想
- 直方图内最大矩形
- 如何设计一个手机信息页面?
- 透明度与十六进制代码转换
- 网络爬虫技术