在for循环中,数组长度为3,我本来是想对每个循环的元素绑定一个点击事件的,结果点击后控制台输出全部为1. for (var i = 0; i < data.data.length; i++) { $('.lands').append( '<button type="button" class="land land' + `${i % 3 + 1}` + '">\ <div class="soil">\ <!-…
回调函数.闭包.循环绑定.面向对象.定时器 一.函数高级 1.函数回调 // 回调函数 function callback(data) {} // 逻辑函数 function func(callback) { // 函数回调,判断回调函数是否存在 if (callback) callback(data); } func(callback); // 函数回调的本质:在一个函数中(调用函数),当满足一定条件,调用参数函数(回调函数) // 回调函数作为调用函数的参数传入,满足一定的条件,调用回调函数…
以前总觉得闭包很抽象,很难理解,所以百度一下"闭包"概览,百度的解释是:“闭包是指可以包含自由(未绑定到特定对象)变量的代码块:这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)” 看了半天,也没有看懂闭包是什么?以下是我对闭包的理解 1.普通函数.变量访问作用域 以上普通函数的调用fn被调用了两次,变量b却没有累加?? 对于函数f1变量b在函数外部是不能访问的 如若实现局部变量b的累加,并且可以访问该怎么做呢? 2.闭包概念: 函数的嵌套,…
    一.闭包(Closure)模糊概述 之前总觉得闭包(Closure)很抽象而且难理解,百度一下"闭包"名词,百度的解释是:“闭包是指可以包含自由(未绑定到特定对象)变量的代码块:这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)” 看了半天,也没有看懂闭包是什么?以下将是我对闭包(Closure)的理解,如有错误欢迎指出     二.普通函数.变量访问作用域 以上普通函数的调用fn被调用了两次,变量b却没有累加?? 对于函数f1变量b…
介绍 本章我们将介绍在JavaScript里大家经常来讨论的话题 —— 闭包(closure).闭包其实大家都已经谈烂了.尽管如此,这里还是要试着从理论角度来讨论下闭包,看看ECMAScript中的闭包内部究竟是如何工作的. 正如在前面的文章中提到的,这些文章都是系列文章,相互之间都是有关联的.因此,为了更好的理解本文要介绍的内容,建议先去阅读第14章作用域链和第12章变量对象. 英文原文:http://dmitrysoshnikov.com/ecmascript/chapter-6-closu…
一.什么是闭包? 概念性的我就不去百度了,感兴趣的可以自己去搜下,我自己的理解,闭包就是一个封装的包,相当于类的概念,把乱七八糟的的东西封装到一起,然后统一使用一个对象来调用,实现代码部分对外开放,部分隐藏的作用,就比如很多好用的js jquery 插件,为什么一行代码就可以使用了? 因为往往我们不会去关心实现,而只想知道怎么用,本文仅仅对于这个概念做一个简单的阐述,有兴趣的可以自己自由发挥. 0.0 代码如下: <!DOCTYPE html> <html> <head>…
今天学到了JavaScript的语句篇.同其他常见编程语言如C.Java等一样,JavaScript中的语句包含:①表达式语句②复合语句和空语句③声明语句④条件语句⑤循环语句⑥跳转语句,当然JavaScript还有⑦其他三种语句.那么标题叫做JavaScript循环之for/in循环,主要是因为我觉得这里面大多语句跟C.Java那些一样,没必要再浪费口舌介绍了,但for/in循环是第一次在JavaScript中接触的.当然,这些都是非常基础的内容,只是做为学习笔记,初学JavaScript可以看…
这似乎令人惊讶,但在我看来,理解JavaScript语言最重要和最基本的概念是理解执行上下文.通过正确学习它,你将很好地学习更多高级主题,如提升,作用域链和闭包.考虑到这一点,究竟什么是"执行上下文"?为了更好地理解它,我们首先来看看我们如何编写软件. 编写软件的一种策略是将代码分解为单独的部分.虽然这些"部分"有许多不同的名称(功能,模块,包等),但它们都是为了一个目的而存在 - 分解和管理应用程序的复杂性.现在,不要像编写代码的人那样思考,而是根据JavaScr…
JavaScript循环语句 学习目标 1.掌握for语句的语法结构 2.掌握for语句的应用逻辑 for语句 语法: For(语句1:语句2:语句3){ 被执行的代码块: } 语句1:在循环(代码块)开始前执行 语句2:定义运行循环(代码块)的条件 语句3:在循环(代码块)已被执行之后执行   <script>     // 1-100 101   1 2 3 4     // 循环的初始值   // 循环条件  变量的变化     for(var i=1;i<=100;i++){  …
JavaScript Switch 语句 语法 switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case 1 和 case 2 不同时执行的代码 } 工作原理:首先设置表达式 n(通常是一个变量).随后表达式的值会与结构中的每个 case 的值做比较.如果存在匹配,则与该 case 关联的代码块会被执行.请使用 break 来阻止代码自动地向下一个 case 运行. 示例: var day=new Da…