javascript闭包2作用域

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>js01_hello</title>
	<meta name="author" content="Administrator" />
	<script type="text/javascript">
	/**
	 * 在js中当进行函数的调用,会为每一个函数增加一个属性SCOPE,通过这个属性来指向一块内存
	 * 这块内存中包含有所有的上下文使用的变量,当在某个函数中调用了新函数之后,新函数依然
	 * 会有一个作用域来执行原有的函数的SCOPE和自己新增加的SCOPE,这样就形成一个链式结构
	 * 这就是js中的作用域链
	 */
	var color = "red";

	var showColor = function() {
		alert(this.color);
	}

	function changeColor() {
		var anotherColor = "blue";
		function swapColor() {
			var tempColor = anotherColor;
			anotherColor = color;
			color = tempColor;
		}
		swapColor();
	}

	changeColor();

	showColor();
	</script>
</head>
<body>
</body>
</html>

  

时间: 2024-10-22 00:16:58

javascript闭包2作用域的相关文章

Javascript闭包与作用域

1.Javascript的作用域是函数作用域而非块级作用域 //C语言 #include  void main() {    int i=2;    i--;    if(i)    {        int j=3;    }    printf("%d/n",j);      //use an undefined variable:j } 这是因为c中的作用域是块级的,j是在if后的{ }中定义的,所以无法访问,然而在js中会是什么情况?     (function(){     

[JavaScript]闭包与作用域

闭包是指有权访问另一个函数作用域中的变量的函数.创建闭包的常见方式,就是在一个函数内部创建另一个函数,例如: 1 function createComparisonFunction(propertyName) { 2 3 return function(object1, object2) { 4 var value1 = object1[propertyName]; 5 var value2 = object2[propertyName]; 6 7 if(value1 < value2) { 8

Javascript——闭包、作用域链

1.闭包:是指有权访问另一个函数作用域中的变量的函数.创建闭包的常见方式:在一个函数内部创建另一个函数. function f(name){ return function(object){ var value = object[name]; ... } } 加粗代码是内部函数(一个匿名函数)中的代码,代码中访问了外部函数中的变量name. 2.作用域链 1 function compare(v1,v2){ 2 if(v1<v2) return -1; 3 else if(v1>v2) ret

javascript闭包,作用域,自调用匿名函数

一,自调用匿名函数 有两种方式:       第一种: (function(参数){....}(传入参数))    --->括号内的语句被强制执行 第二种: (function(参数){...})(传入参数)     --->说明:jquery就是采用这种方式,这种方式的原理:  原来我们调用函数的方式是,先定义,在进行函数名调用        function funName(){        alert("hello world");        }       

Javascript闭包与作用域this

闭包与this的一般用法 关于js函数与闭包的文章想必大家都是在熟悉不过的了,作为js核心亦即最强大的功能之一,每次回过头翻出来看一看,都会有不一样的收获与理解,经典的含义无非如此而已. 1.闭包 1.1 先说说js中闭包存在的意义,闭包(closure)的主要作用其实就三点: a.访问外部变量 b.保护局部变量 c.自动回收回收 1.2 闭包的定义:

JavaScript函数,作用域以及闭包

JavaScript函数,作用域以及闭包 1. 函数 (1). 函数定义:函数使用function关键字定义,它可以用在函数定义表达式或者函数声明定义. a. 函数的两种定义方式: * function functionName() {} * var functionName = function(){} b. 两种函数定义不同之处 1). 声明提前问题 函数声明语句   :声明与函数体一起提前 函数定义表达式 :声明提前,但是函数体不会提前 请看下面图示:绿色线上面实在js初始加载的时候,查看

JavaScript中的匿名函数及函数的闭包以及作用域

1. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85

JavaScript中的作用域链和闭包

JavaScript中的作用域链和闭包 2012-06-29 11:41 1878人阅读 评论(46) 收藏 举报 JavaScript中出现了一个以前没学过的概念——闭包.何为闭包?从表面理解即封闭的包,与作用域有关.所以,说闭包以前先说说作用域. 作用域(scope) 通常来说一段程序代码中使用的变量和函数并不总是可用的,限定其可用性的范围即作用域,作用域的使用提高了程序逻辑的局部性,增强程序的可靠性,减少名字冲突. 全局作用域(Global Scope) 在代码中任何地方都能访问到的对象拥

读书时间《JavaScript高级程序设计》三:函数,闭包,作用域

上一次看了第6章,面向对象.这里接着看第7章. 第7章:函数表达式 定义函数有两种方式:函数声明.函数表达式 //函数声明 function functionName(arg0,arg1,arg2){ //code... } //函数表达式 var functionName = function(arg0,arg1,arg2){ //code... }; 函数声明有个重要的特征是函数申明提升.就是在执行代码前会先读取函数声明,意味着可以把函数声明放在调用它的语句后面. //函数声明提升 sayH