闭包问题的解决

问题:ul中有若干个li,每次点击li,输出li的索引值

<script>

var lis=document.getElementsByTagName(‘ul‘)[0].children;

for(var i=0;i<lis.length;i++){

(function(index){

lis[i].onclick=function(){

console.log(index);

};

}(i);

}

</script>

时间: 2024-12-19 01:06:25

闭包问题的解决的相关文章

无意间创建的一个闭包,以及解决办法

闭包的本质是作用域链,我们在工作中经常无意间就会创建一个闭包,比如: <input type="button" id="id1" value="1"></input> <input type="button" id="id2" value="2"></input> <input type="button" id=&

业务建模 之 闲话&#39;闭包&#39;与&#39;原型继承&#39;

[引言]在业务建模中,我们经常遇到这样一种情况:“原型”对象负责实现业务的基本诉求(包括:有哪些属性,有哪些函数以及它们之间的关系),以“原型”对象为基础创建的“子对象”则实现一些个性化的业务特性,从而方便的实现业务扩展.最常见的搞法是: 1. 定义一个‘构造函数’,在其中实现属性的初始化,例如:var Person = function( ){};    //函数体中可以进行一些变量的初始化. 2. 再设置该函数的prototype成员,例如:Person.prototype = { goto

JavaScript系列----作用域链和闭包

1.作用域链 1.1.什么是作用域 谈起作用域链,我们就不得不从作用域开始谈起.因为所谓的作用域链就是由多个作用域组成的.那么, 什么是作用域呢? 1.1.1作用域是一个函数在执行时期的执行环境. 每一个函数在执行的时候都有着其特有的执行环境,ECMAScript标准规定,在javascript中只有函数才拥有作用域.换句话,也就是说,JS中不存在块级作用域.比如下面这样: function getA() { if (false) { var a = 1; } console.log(a); /

闭包相关概念

几天没有更新,这两天使周末,给大家整理了一几篇东西,有关于作用域的,闭包的,还有递归的,闭包和递归,对于大部分初次接触编程的人来说还是有些难度的,昨天,花了一点时间给大家整理了一下,今天,给大家上传上来,让大家看看,部分属于个人观点,如有错误,欢迎指出 这一篇给大家讲讲什么是闭包,闭包在很多语言中都是有的,Java,C#等都是有的,这里给大家讲讲JS中的闭包 1. 闭包 闭包的含义就是闭合,抱起来.简单的的来说就是一个具有封闭功能与包裹功能的一个结构,所谓的闭包就是 有一个具有封闭的对外不公开的

firefox下对ajax的onreadystatechange的支持情况分析及解决

一.问题: var xmlHttp; function savecarttodata(){ createXMLHttpRequest(); var rndcode = new Date().getTime(); var CartUrl ="a.asp?cache="+rndcode xmlHttp.onreadystatechange = function(){ ..... } xmlHttp.open ("GET",CartUrl,true); xmlHttp.s

Swift学习笔记之闭包

简介 (真的很简) 闭包的完整形态是这个样子的: { (parameters) -> returnType in statements } 写在一行里就是这样: {(parameters) -> (returnType) in statements} 形式 闭包以三种形式存在: 1.全局的函数都是闭包,它们有自己的名字,但是没有捕获任何值. 2.内嵌的函数都是闭包,它们有自己的名字,而且从包含他们的函数里捕获值. 3.闭包表达式都是闭包,它们没有自己的名字,通过轻量级的语法定义并且可以从上下文

JS函数的应用 --- 立即执行函数、全局污染、闭包、沙箱、递归

一.立即执行函数 --- IIFE 立即执行函数的集中表现形式: 立即执行函数的特点: 二.JS 全局污染 为什么会造成全局污染? JS 没有块级作用域,在函数外定义的变量,均为全局变量: 全局变量过多会削弱程序的灵活性,增大了模块之间的耦合度,多人协作开发会导致变量冲突,造成环境污染. 耦合度:即模块之间的依赖关系:控制关系.调用关系.数据传递关系: 划分模块准则:高内聚低耦合 如何解决全局污染? 1. 命名空间 2. 立即执行函数(里面创建的变量,为局部变量) (function(){})(

React Hooks 实现和由来以及解决的问题

与React类组件相比,React函数式组件究竟有何不同? 一般的回答都是: 类组件比函数式组件多了更多的特性,比如 state,那如果有 Hooks 之后呢? 函数组件性能比类组件好,但是在现代浏览器中,闭包和类的原始性能只有在极端场景下才会有明显的差别. 性能主要取决于代码的作用,而不是选择函数式还是类组件.尽管优化策略有差别,但性能差异可以忽略不计. 参考官网:(https://zh-hans.reactjs.org/docs/hooks-faq.html#are-hooks-slow-b

JavaScript设计模式-7.单例模式

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>javascript高级语法7-单例模式</title> 6 </head> 7 <body> 8 <script> 9 /*单例模式在js中使用非常频繁: 10 * 1.普通单体 11 * 2.具有局部变量的强大单体 12 * 3.惰性单体