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

东莞设计网站公司地方门户网站赚钱

东莞设计网站公司,地方门户网站赚钱,自己做网站上传视频,长沙商业网站建设1、闭包的概念闭包是一种特殊的程序结构#xff0c;即 函数A中定义了另一个函数a#xff0c;内部函数a引用了外部函数A的参数和局部变量#xff0c;最终A会返回一个保存了相关参数和变量的函数a。简洁地说#xff0c;外层函数将保存了信息的可执行内层函数作为结果返回。来…1、闭包的概念闭包是一种特殊的程序结构即 函数A中定义了另一个函数a内部函数a引用了外部函数A的参数和局部变量最终A会返回一个保存了相关参数和变量的函数a。简洁地说外层函数将保存了信息的可执行内层函数作为结果返回。来看个例子//求和功能 function lazy_sum(arr) {var sum function () {return arr.reduce(function (x, y) {return x y;});}return sum; } //当调用该函数时不会直接返回结果而是返回函数 --e.g.-- // var f lazy_sum([1, 2, 3, 4, 5]); -- 得到 function sum() //调用函数时才得到真正的结果 --e.g.-- // f(); -- 得到 15 //另即使传入相同参数的两个函数A返回的函数a也是不同的121//求和功能  2function lazy_sum(arr) {3    var sum function () {4        return arr.reduce(function (x, y) {5            return x y;6       });7   }8    return sum;9}10//当调用该函数时不会直接返回结果而是返回函数 --e.g.-- // var f lazy_sum([1, 2, 3, 4, 5]); -- 得到 function sum()11//调用函数时才得到真正的结果 --e.g.-- // f(); -- 得到 1512//另即使传入相同参数的两个函数A返回的函数a也是不同的2、闭包的小坑闭包的返回函数是没有立刻执行的直到调用该函数才会执行这意味着如果是引用了循环变量会变成如下情况function count() {var arr [];for (var i1; i3; i) {arr.push(function () {return i * i;});}return arr; }var results count(); var f1 results[0]; var f2 results[1]; var f3 results[2];//然而f1(),f2(),f2()的结果并不是149而全部是16161function count() {2    var arr [];3    for (var i1; i3; i) {4        arr.push(function () {5            return i * i;6       });7   }8    return arr;9}1011var results count();12var f1 results[0];13var f2 results[1];14var f3 results[2];1516//然而f1(),f2(),f2()的结果并不是149而全部是16原因就在于返回的函数引用了变量i但它并非立刻执行。等到3个函数都返回时它们所引用的变量i已经变成了4因此最终结果为16。如果一定要引用循环变量需要再创建一个函数用该函数的参数绑定当前循环变量的值function count() {var arr [];for (var i1; i3; i) {arr.push((function (n) {return function () {return n * n;}})(i));}return arr; }var results count(); var f1 results[0]; var f2 results[1]; var f3 results[2];f1(); // 1 f2(); // 4 f3(); // 9201function count() {2    var arr [];3    for (var i1; i3; i) {4        arr.push((function (n) {5            return function () {6                return n * n;7           }8       })(i));9   }10    return arr;11}1213var results count();14var f1 results[0];15var f2 results[1];16var f3 results[2];1718f1(); // 119f2(); // 420f3(); // 9这里用到了一个语法 “创建一个匿名函数并立即执行”(function (x) {return x * x; })(3); // 9 //由于JavaScript语法解析的问题会报SyntaxError错误因此需要用括号把整个函数定义括起来41(function (x) {2    return x * x;3})(3); // 94//由于JavaScript语法解析的问题会报SyntaxError错误因此需要用括号把整个函数定义括起来3、闭包的意义上面我们讲到闭包相当于把传参后的函数进行了保存但是并不会立刻执行你要调用返回的这个函数才会执行所以说闭包的意义只是在于延迟执行函数吗当然不完全是这样还有其他很多功能。在例如Java中我们要封装一个私有变量只需要加上private关键字就可以了可是在JS中我们也想要封装一个私有变量怎么办利用闭包。//e.g.创建一个计数器 function create_counter(initial) {var x initial || 0;return {inc: function () {x 1;return x;}} }101//e.g.创建一个计数器2function create_counter(initial) {3    var x initial || 0;4    return {5        inc: function () {6            x 1;7            return x;8       }9   }10}闭包中携带了局部变量x但是当你使用该函数时你实际上是无法访问到变量x的即实际上这个函数的状态完全被隐藏了var c1 create_counter(); c1.inc(); // 1 c1.inc(); // 2 c1.inc(); // 3var c2 create_counter(10); c2.inc(); // 11 c2.inc(); // 12 c2.inc(); // 1391var c1 create_counter();2c1.inc(); // 13c1.inc(); // 24c1.inc(); // 356var c2 create_counter(10);7c2.inc(); // 118c2.inc(); // 129c2.inc(); // 13闭包还可以创建新函数例如把多参数的函数变成单参数的函数。例如要计算x的y次方可以用Math.pow(x, y)函数不过考虑到经常计算x平方或x立方我们可以利用闭包创建新的函数pow2和pow3function make_pow(n) {return function (x) {return Math.pow(x, n);} }// 创建两个新函数: var pow2 make_pow(2); var pow3 make_pow(3);pow2(5); // 25 pow3(7); // 343x1function make_pow(n) {2    return function (x) {3        return Math.pow(x, n);4   }5}67// 创建两个新函数:8var pow2 make_pow(2);9var pow3 make_pow(3);1011pow2(5); // 2512pow3(7); // 343转载于:https://www.cnblogs.com/deng-cc/p/6622610.html
http://www.pierceye.com/news/873129/

相关文章:

  • 优秀网站设计案例在家开个人工作室违法吗
  • 腾讯云建设网站wordpress仿知乎社区
  • 《网站开发技术》模板linchong.wordpress
  • 找做企业网站论文旅游网站建设
  • 类似情侣空间的网站开发seo外推软件
  • 网站建设策划方案怎么写工业品网络营销
  • 上海本地网站建设微信网站怎么建设
  • 江苏华江建设集团网站wordpress开发找工作
  • 家政服务网站源码自己做网站好还是让别人做
  • 手机网站用什么系统做网站在什么地方发帖子呢
  • 虚拟电脑可以做网站吗中国建设行业信息网站
  • 网站设计建设合同公司网页设计实例教程
  • 仿起点小说网站开发网站图片优化工具
  • 在线做logo的网站泉州做网站哪家好
  • 知名企业网站人才招聘情况如何网络系统集成
  • 做灯带的网站重庆有哪些好玩的地方
  • 小孩子做手工做游戏的网站百度账号设置
  • 大庆做网站公司巩义网站建设方案报价
  • 该网站受海外服务器保护品牌营销型网站建设公司
  • 免费做一建或二建题目的网站郑州企业建站系统模板
  • 想自己建个网站徐州做网站软件
  • 蓝色系网站设计企业应对承包商的施工方案尤其是
  • 旅游网站 源码 织梦导购网站开发
  • 头像制作网站开源低代码平台
  • 网站到期域名怎么解决办法自己动手建立网站3
  • 比较有名的网站建设平台吉林建设网站
  • 网站服务器解决方案wamp安装wordpress
  • 义乌制作网站赣州网站建设公司
  • 东莞网站平台后缀建设淘宝客网站
  • 深圳龙华新区住房和建设局网站示范校建设专题网站