第六章 域 作用域 内部变量访问外部变量的值的变化!

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

<script>

window.onload = function (){

//js第一步解析:i最后为3;

var aBtn = document.getElementsByTagName(‘input‘);

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

// 在js第一步解析后,i=3;

aBtn[i].onclick = function (){

//函数内i,在js第一步解析i(没有声明i),先没找到,再找到var i,值为undefined;如果是if(i=0),则会到外域找i=3;

alert( i );// 3,

//for( i=0; i<aBtn.length; i++ ){//如果是if(i=0),则会到外域找i=3;

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

aBtn[i].style.background = ‘yellow‘;

}

};

}

};

</script>

</head>

<body>

<input type="button" value="按钮1" />

<input type="button" value="按钮2" />

<input type="button" value="按钮3" />

</body>

</html>

时间: 2024-10-20 04:21:44

第六章 域 作用域 内部变量访问外部变量的值的变化!的相关文章

匿名函数访问外部变量有gc

直接上测试代码: using System.Collections; using System.Collections.Generic; using UnityEngine; public class TestStructGC : MonoBehaviour { public struct StructDef { public System.Action act; public StructDef(System.Action callback) { act = callback; } } pub

关于Lambda表达式访问外部变量

在<C#高级编程>一书中提到通过Lambda表达式可以访问Lambda表达式块外部的变量 ,这是一个很好的功能(类似Js中的 闭包).但是如果没有正确的使用,会非常危险. 比如下面的事例中 int someVal  = 5; Fun<int, int> f = x => x + someVal; Console.WriteLine(f(3)); 我们这个表达式的本意是返回一个数x+5的结果.所以f(3)的结果应该是 3 + someVal = 8. 但是如果以后在不经意中修改

第六章 对象作用域与servlet事件监听器

作用域对象 Servlet上下文监听器 Servlet会话监听器 Servlet请求监听器 一:对象作用域 作用域对象 属性操作方法 作用域范围说明 ServletContext(上下文) void setAttribute(String, Object) Object getAttribute(Sting) void removeAttribute(String) Enumeration getAttributeNames() 整个Web应用程序 HttpSession(会话) 一个会话交互过

第六章 大网高级 QOS 服务访问质量

服务访问质量 QOS    实验要求: 1.配置各设备参数实现网络互通 2.服务器上搭建FTP 服务 3.PC上安装Flashfxp 测试下载速度. 4.路由器配置不同方案策略. 5.验证结构. 一.配置参数 二.安装FTP 三.挂载光盘提取install.wim 测试下载速率 四.xp安装Flashfxp 软件 五.测试pC正常访问FTP 六.低级配置 流量整形GTS 查看配置并验证 七.低级设置 承诺访问速率 CAR 查看并验证 八.高级设置 承诺访问速率 CAR 流量整形GTS 九.查看配

第六章 深入理解函数 Lua程序设计笔记

--第六章 深入理解函数Lua中函数是"第一类值",与其他传统类型有相同的权利:可以储存到变量或table中,可以作为函数实参传递,还可以作为函数的返回值. 函数的标准定义: foo = function(x) return x*2 end 一个函数定义实际上就是一条赋值语句,这条语句创建了一种类型为"函数"的值,并将这个值赋予一个变量. --6.1closure(闭合函数) function newCounter() local i = 0 return func

JNI/NDK开发指南(七)——C/C++访问Java实例变量和静态变量

转载请注明出处:http://blog.csdn.net/xyang81/article/details/42836783 在上一章中我们学习到了如何在本地代码中访问任意Java类中的静态方法和实例方法,本章我们也通过一个示例来学习Java中的实例变量和静态变量,在本地代码中如何来访问和修改.静态变量也称为类变量(属性),在所有实例对象中共享同一份数据,可以直接通过[类名.变量名]来访问.实例变量也称为成员变量(属性),每个实例都拥有一份实例变量数据的拷贝,它们之间修改后的数据互不影响.下面看一

PHP 闭包获取外部变量和global关键字声明变量的区别

最近在学习workerman的时候比较频繁的接触到回调函数,使用中经常会因为worker的使用方式不同,会用这两种不同的方式去调用外部的worker变量,这里就整理一下PHP闭包获取外部变量和global关键字声明变量的区别. 闭包 闭包是一个常见的概念,我们通常可以将其与回调函数配合使用,可以使代码更加简洁易读. 闭包可以通过拷贝的方式让函数使用父作用域中的变量.如: $global = 'hello'; $bbb = function()use($global){ echo $global.

C++变量(C++变量定义、变量赋值、命名规则)

其实在前面的例子中已经多次用到了变量.在程序运行期间其值可以改变的量称为变量.一个变量应该有一个名字,并在内存中占据一定的存储单元,在该存储单元中存放变量的值.请注意区分变量名和变量值这两个不同的概念,见图2.6. 图2.6 变量名规则 先介绍标识符的概念.和其他高级语言一样,用来标识变量.符号常量.函数.数组.类型等实体名字的有效字符序列称为标识符(identifier).简单地说,标识符就是一个名字.变量名是标识符的一种,变量的名字必须遵循标识符的命名规则. C++规定标识符只能由字母.数字

CoffeeScript中的外部变量与局部变量的屏蔽

刚接触CoffeeScript时,一直不清楚它存在的意义,搜索过部分资料,可以总结为两点:①语法糖,减少代码量增加可读性②增强js代码的合法性,编译之后的js代码跟手动写的相比基本没语法错误. 其实自我感觉代码量确实减少了,但是也并不是很可观,语法糖确实使用起来很方便,而语法错误这一点,个人感觉只要是对js有一定了解的人不一定会比他差,差也差不太多,个人感觉. 说一下在使用过程中遇到的比较头疼的一点,就是外部变量与局部变量的屏蔽机制. 如下代码: a = (callback) -> setTim