js闭包讲解

Posted 坏小子之涛声依旧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js闭包讲解相关的知识,希望对你有一定的参考价值。

今日看到之前写的一段js代码,关于导航部分鼠标放上去变类,鼠标离开等效果

 

前端代码

<div class="con12">
			<div class="left">
				<ul id="liu">
					<li class="chang02">长双歧杆菌</li>
					<li class="chang01">短双歧杆菌</li>
					<li class="chang01">乳双歧杆菌</li>
					<li class="chang01">嗜酸乳杆菌</li>
					<li class="chang01">罗伊氏乳杆菌</li>
					<li class="chang01">鼠李糖乳杆菌</li>
				</ul>
			</div>

			<div class="right">

				<div class="show">
					<div class="title">
						<span class="one">长双歧杆菌</span>  <span class="two">Bifidobacterium longum</span>  <span class="three">11.5亿 CFU/小袋</span>
					</div>
					<div class="des">
						可降低肠道 pH,抑制致病菌的生长繁殖,达到调节肠道菌群失调和改善肠道微环境的效果<span class="biao">[7]</span>。
					</div>
					<div class="desimg">
						<img src="img/des01.jpg">
					</div>
				</div>


				<div class="show none">
					<div class="title">
						<span class="one">短双歧杆菌</span>  <span class="two">Bifidobacterium breve</span>  <span class="three">11亿 CFU/小袋</span>
					</div>
					<div class="des">
						拥有较强的抗酸能力与粘附力,黏附在肠道细胞膜上,能有效阻止致病菌的入侵,给宝宝一个健康的肠道<span class="biao">[8,9]</span>。
					</div>
					<div class="desimg">
						<img src="img/duansuangqi.jpg">
					</div>
				</div>


				<div class="show none">
					<div class="title">
						<span class="one">乳酸双歧杆菌</span>  <span class="two">Bifidobacterium lactis</span>  <span class="three">12亿 CFU/小袋</span>
					</div>
					<div class="des">
						乳双歧杆菌能增强宝宝的细胞免疫和体液免疫功能,提高宝宝的免疫力,让宝宝少生病<span class="biao">[10]</span>。
					</div>
					<div class="desimg">
						<img src="img/rusuangqi.jpg">
					</div>
				</div>


				<div class="show none">
					<div class="title">
						<span class="one">鼠李糖乳杆菌</span>  <span class="two">Lactobacillus rhamnosus</span>  <span class="three">6.5亿 CFU/小袋</span>
					</div>
					<div class="des">
						参与宝宝消化道内菌群调节, 排除宝宝体内毒素,维持宝宝肠道健康<span class="biao">[11]</span>。
					</div>
					<div class="desimg">
						<img src="img/shulitang.jpg">
					</div>
				</div>


				<div class="show none">
					<div class="title">
						<span class="one">罗伊氏乳杆菌</span>  <span class="two">Lactobacillus reuteri</span>  <span class="three">1亿 CFU/小袋</span>
					</div>
					<div class="des">
						增加肠道固水物质——短链脂肪酸的含量,软化大便,并且有很强的粘附能力,对改善肠道黏膜免疫功能,提高宝宝免疫力具有积极的作用<span class="biao">[12]</span>。
					</div>
					<div class="desimg">
						<img src="img/luoyishi.jpg">
					</div>
				</div>

				<div class="show none">
					<div class="title">
						<span class="one">嗜酸乳杆菌</span>  <span class="two">Lactobacillus acidophilus</span>  <span class="three">8亿 CFU/小袋</span>
					</div>
					<div class="des">
						发酵后形成乳酸,帮助宝宝消化肠胃内的食物,提高钙、磷、铁的利用率,并且对其他乳杆菌和双歧杆菌在肠道的增殖具有积极作用<span class="biao">[13,14]</span>。
					</div>
					<div class="desimg">
						<img src="img/sishuanru.jpg">
					</div>
				</div>

			</div>
		</div>

  js代码

window.onload=function(){
	var one = document.getElementById(\'liu\');
	var oPoint = one.getElementsByTagName(\'li\');
	var div = document.getElementsByClassName(\'show\');
	
	var lilen = oPoint.length;
	for (var i = 0; i < lilen; i++) {
		oPoint[i].index = i;
		oPoint[i].onmouseover = function (){
			for (var j = 0; j <lilen; j++) {
				oPoint[j].className = "chang01";
				div[j].className += " none";
            }

            oPoint[this.index].className = "chang02";
            div[this.index].className = "show";
		}
		
	}
}

  其中,看到

oPoint[i].index = i;
一时之间想不明白,大体好像是关于js的闭包知识,查找资料
https://segmentfault.com/a/1190000002805295

以上是关于js闭包讲解的主要内容,如果未能解决你的问题,请参考以下文章

js闭包详细讲解

再次讲解js中的回收机制是怎么一回事。

再次讲解js中的回收机制是怎么一回事。

js 闭包 弊端

js闭包

详解js中的闭包