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

天津宁河区建设网站东莞做网站排名优化推广

天津宁河区建设网站,东莞做网站排名优化推广,凡科网站免费注册,广州优化防控措施theme: smartblue 题目描述 给定一个整型参数 n#xff0c;请你编写并返回一个 counter 函数。这个 counter 函数最初返回 n#xff0c;每次调用它时会返回前一个值加 1 的值 ( n , n 1 , n 2 #xff0c;等等)。 示例 1#xff1a; 输入#xff1a; n 10 [cal… theme: smartblue 题目描述 给定一个整型参数 n请你编写并返回一个 counter 函数。这个 counter 函数最初返回 n每次调用它时会返回前一个值加 1 的值 ( n ,  n 1 ,  n 2 等等)。 示例 1 输入 n 10 [call,call,call] 输出 [10,11,12] 解释 counter() 10 // 第一次调用 counter()返回 n。 counter() 11 // 返回上次调用的值加 1。 counter() 12 // 返回上次调用的值加 1。 示例 2 输入 n -2 [call,call,call,call,call] 输出 [-2,-1,0,1,2] 解释 counter() 最初返回 -2。然后在每个后续调用后增加 1。 提示 -1000  n 10000 calls.length 1000calls[i] call 题解 概述 这个问题旨在介绍 闭包(closures) * 的概念。在 JavaScript 中函数具有对在相同作用域以及任何外部作用域中声明的所有变量的引用。这些作用域被称为函数的 词法环境。函数与其环境的组合被称为 闭包*。 闭包示例 在 JavaScript 中你可以在其他函数内部声明并返回函数。内部函数可以访问在其上方声明的任何变量。 function createAdder(a) { return function add(b) { const sum a b; return sum; } } const addTo2 createAdder(2); addTo2(5); // 7 在示例代码中内部函数 add 可以访问 a。这允许了外部函数充当新函数的工厂每个函数都具有不同的行为。 闭包 VS 类 你可能会注意到在上面的示例中createAdder 非常类似于类构造函数。 class Adder { constructor(a) { this.a a; } add(b) { const sum this.a b; return sum; } } const addTo2 new Adder(2); addTo2.add(5); // 7 除了语法上的差异之外这两个示例在本质上具有相同的目的。它们都允许你在「构造函数(Constructor)」中传递一些状态并具有可以访问此状态的「方法 (Method)」。 它们之间一个关键的区别是闭包允许真正的 封装。在类的示例中没有任何限制阻止你编写 addTo2.a 3; 并破坏其预期行为。然而在闭包的示例中理论上无法访问 a。请注意截至2022年使用 # 前缀语法 的类仍然可以实现真正的封装。 另一个区别是函数在内存中的存储方式。如果创建了许多类的实例每个实例都存储对 原型对象 的单一引用其中都存储了所有「方法(Method)」。而对于闭包所有「方法(Method)」都在每次调用外部函数时生成并存储了一个「副本(Copy)」。因此在同时有多种方法可用的情况下类可以在性能方面体现更高的效率。 与像 Java 这样的语言不同你会发现使用其他语言编写的代码通常使用函数而不是类。但由于 JavaScript 是一种多范式语言代码如何编写取决于你正在处理的具体项目。 方法 现在让我们讨论实现计数器的方法。 方法 1: 先增加再返回 我们先声明一个变量 currentCount 并将其设置为 n - 1。然后在 counter 函数内部增加 currentCount 并返回其值。请注意由于修改了 currentCount 应该使用 let 而不是 const 来声明它。 实现 var createCounter function(n) { let currentCount n - 1; return function() { currentCount 1; return currentCount; }; }; var createCounter function(n: number) { let currentCount n - 1; return function() { currentCount 1; return currentCount; }; }; 方法 2: 后缀递增语法 JavaScript 提供了方便的语法可以先返回一个值然后递增它。这使我们可以避免把初始值设置为 n - 1 。 代码实现 var createCounter function(n) { return function() { return n; }; }; var createCounter function(n: number) { return function() { return n; }; }; 方法 3: 前缀递减和递增语法 JavaScript 还有一种语法允许你先递增一个值返回它。由于递增发生在值返回之前因此我们必须先对初始值进行递减类似于方法 1 。 代码实现 var createCounter function(n) { --n; return function() { return n; }; }; var createCounter function(n: number) { --n; return function() { return n; }; }; 方法 4: 带箭头函数的后缀递增语法 我们可以使用带有隐式返回的箭头函数来减少方法 2 中的代码量。 实现 var createCounter function(n) { return () n; }; var createCounter function(n: number) { return () n; }; 这些是不同的方法来实现计数器你可以根据项目的需要选择其中之一。
http://www.dnsts.com.cn/news/81757.html

相关文章:

  • 重庆忠县网站建设公司哪里有做网站怎么插音频
  • 疗养院有必要做网站吗个人简历wps模板免费
  • 网站下做二级域名企业网站宽度给多少
  • 网站建设 接单网站免费部署
  • 互联网站备案网络营销的定义和内容
  • 有了域名如何建设网站中企动力设计的网站
  • pc网站建设费用thinkphp集成wordpress
  • 网站建设必须注意的事项wordpress开启多站点
  • 做网站语言服务器 空间有服务器域名源码怎么做网站平台
  • 光谷网站建设哪家好德州网站建设推广
  • 合肥网站建设设计用frontpage做网站
  • 网站开发架设下载牛霸软件
  • 建立网站的主要方式重庆信息网
  • 广州怎么找做网站的公司做网站手机电脑通用要加些什么
  • 购物网站创建河源抖音seo讯息
  • 网页制作与网站建设实战大全 视频广西网站建设哪家强
  • 北京市保障性住建设投资中心网站首页项目外包平台
  • 手机网站变灰网站建设的市场调研分析
  • 怎么弄一个网站租房网58同城网租房
  • 网站做系统叫什么软件吗网红营销也称为
  • 旅游网站建设的可行性分析网站开发前后台整个流程
  • 网站空间哪家公司的好快递系统查询网站怎么做
  • 做的网站怎么联网wordpress固定链接改后无法访问
  • wordpress循环该分类子分类优化算法 网站
  • 国内网站没备案禁止拿我们的网站做宣传
  • 网站制作图书如何做网页宣传
  • 湖南省军区强军网网站群建设项目6查询公司
  • 台商网站建设公司黄页南京做电商网站的公司
  • 德州做网站dzqifan湖北省建设厅官方网站文件
  • 手机网站 设计趋势橘子建站