我的编程空间,编程开发者的网络收藏夹
学习永远不晚

web前端:js基础闭包练习题

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

web前端:js基础闭包练习题

  在php、Scala、Scheme、CommonLisp、Smalltalk、Groovy、Javascript、Ruby、Python、Go、Lua、objectivec、Swift以及java(Java8及以上)等语言中都能找到对闭包不同程度的支持。

  实现函数makeClosures,调用之后满足如下条件:

  1、返回一个函数数组result,长度与arr相同

  2、运行result中第i个函数,即result[i](),结果与fn(arr[i])相同

  示例1

  //参考《JavaScript高级程序设计》的典型方法

  functionmakeClosures(arr,fn){

  varresult=newArray();

  for(vari=0;i<arr.length;i++){

  result[i]=function(num){

  returnfunction(){

  returnfn(num);

  }

  }(arr[i]);

  }

  returnresult;

  }

  //使用ES5的bind()方法

  functionmakeClosures(arr,fn){

  varresult=newArray();

  for(vari=0;i<arr.length;i++){

  result[i]=fn.bind(null,arr[i]);

  }

  returnresult;

  }

  //使用forEach()

  functionmakeClosures(arr,fn){

  varresult=newArray();

  arr.forEach(function(curr){

  result.push(function(){returnfn(curr)});

  })

  returnresult;

  }

  //使用let

  functionmakeClosures(arr,fn){

  varresult=newArray();

  for(leti=0;i<arr.length;i++){

  result[i]=function(){

  returnfn(arr[i]);//let声明的变量只在let所在代码块内有效,因此每次循环的i都是一个新的变量

  };

  }

  returnresult;

  }

  闭包包含自由(未绑定到特定对象)变量;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。"闭包"一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域)。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

web前端:js基础闭包练习题

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

web前端:js基础闭包练习题

编程学习网:在php、Scala、Scheme、CommonLisp、Smalltalk、Groovy、Javascript、Ruby、Python、Go、Lua、objectivec、Swift以及java(Java8及以上)等语言中都能找到对闭包不同程度的支持。
web前端:js基础闭包练习题
2024-04-23

web前端:js基础题

编程学习网:Javascript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。
web前端:js基础题
2024-04-23

web前端:JS基础语法---基本包装类型

编程学习网:变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的但在纯函数式语言(如Haskell)中,变量可能是不可变(immutable)的。
web前端:JS基础语法---基本包装类型
2024-04-23

web前端:JS高级---闭包小案例

编程学习网:闭包一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域)。在php、Scala、Scheme、CommonLisp、Smalltalk、Groovy、Javascript、Ruby、Python、Go、Lua、objectivec、Swift以及java(Java8及以上)等语言中都能找到对闭包不同程度的支持。
web前端:JS高级---闭包小案例
2024-04-23

web前端javascript练习题有哪些

这篇文章主要讲解了“web前端javascript练习题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web前端javascript练习题有哪些”吧!1.编写任意个数字的求和、差、积、
2023-06-05

web前端:JS基础语法---总结

编程学习网:Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为Javascript。JavaScript最初受java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。
web前端:JS基础语法---总结
2024-04-23

web前端:ES6 - 基础学习(18): Reflect

编程学习网:API就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令。
web前端:ES6 - 基础学习(18): Reflect
2024-04-23

零基础学习web前端路线

很多同学想学习WEB前端开发,虽然互联网有很多的教程、网站、书籍,可是却又不知从何开始如何选取。前端开发入门学习有:HTML、CSS、JavaScript(简称JS)这三个部分。所以在学习之前我们需要先明确三个概念:1、HTML——内容层,
2023-06-03

web前端:JS基础语法----Math对象

编程学习网:Math--OpenOffice的计算机套件之一。功能类似于微软 Office (TM)的公式编辑器。
web前端:JS基础语法----Math对象
2024-04-23

web前端:JS基础语法---String对象

编程学习网:C++、java等编程语言中的字符串。在java、C中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。String对象是System.Char对象的有序集合,用于表示字符串。String对象的值是该有序集合的内容,并且该值是不可变的。
web前端:JS基础语法---String对象
2024-04-23

web前端:JS基础研语法---函数基础总结

编程学习网:一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。
web前端:JS基础研语法---函数基础总结
2024-04-23

web前端:JavaScript基础学习(二)js和html的结合方式

编程学习网:脚本是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批次处理语言或工作控制语言。一个脚本通常是解释运行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程式设计师快速完成程式的编写工作。而宏语言则可视为脚本语言的分支,两者也有实质上的相同之处。
web前端:JavaScript基础学习(二)js和html的结合方式
2024-04-23

web前端:ES6 - 基础学习(9): Class 类

编程学习网:CLASS是一种在网络工程中的一种协议。一般组词为CLASSLESS(无类)或者CLASSFUL(有类)。面向对象编程中一个无明显特点的范畴,用于描述一组更具体的称为对象的东西。另有日本乐队组合名称也为CLASS。同时,class也是{{C++语言}}中的关键字,在matlab中class用于获取变量的类型。
web前端:ES6 - 基础学习(9): Class 类
2024-04-23

web前端:JS基础语法---break关键字

编程学习网:break在一些计算机语言中是保留字,其作用大多情况下是终止上一层的循环。以C语言来说,break在switch(开关语句)中在执行一条case后跳出语句的作用。
web前端:JS基础语法---break关键字
2024-04-23

web前端:JS基础语法---对象总结

编程学习网:对象,是编程术语,其广义指的是在内存上一段有意义的区域,称作为一个对象。在C中,具有特定长度的类型,可以称作为对象类型,函数不具有特定长度,所以不是对象类型。
web前端:JS基础语法---对象总结
2024-04-23

web前端:JS基础语法---作用域链

编程学习网:Javascript中,JavaScript里一切都是对象,包括函数。函数对象和其它对象一样,拥有可以通过代码访问的属性和一系列仅供JavaScript引擎访问的内部属性。其中一个内部属性是作用域,包含了函数被创建的作用域中对象的集合,称为函数的作用域链。
web前端:JS基础语法---作用域链
2024-04-23

web前端:JS基础语法---continue关键字

编程学习网:continue是计算机术语,表示结束本次循环,而不终止整个循环的执行。而是结束本次循环,进行下一次循环。
web前端:JS基础语法---continue关键字
2024-04-23

web前端:新手小白学习web前端必看基础攻略

编程学习网:Internet采用超文本和超媒体的信息组织方式,将信息的链接扩展到整个Internet上。web就是一种超文本信息系统,Web的一个主要的概念就是超文本连接,它使得文本不再象一本书一样是固定的线性的。而是可以从一个位置跳到另外的位置。
web前端:新手小白学习web前端必看基础攻略
2024-04-23

web前端:ES6 - 基础学习(21): Generator 函数

编程学习网:编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
web前端:ES6 - 基础学习(21): Generator 函数
2024-04-23

web前端:JS基础语法---JSON格式的数据

编程学习网:JSON(JavaScriptObjectNotation,JS对象简谱)是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
web前端:JS基础语法---JSON格式的数据
2024-04-23

编程热搜

目录