<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
// 匿名外层函数
(function( window, undefined ) {
// 内层函数方法a
var a = function(){
alert("初始化开始");
obj.constructor("参数", 1);
}
// 内层函数方法b
var b = function(){
return obj;
}
// 外层函数的局部变量
obj = {
type:0x01,
open:function(){
alert("open" + this.param + "," + this.num);
},
close:function(){
alert("close" + this.param + "," + this.num);
},
constructor:function(param, num){
this.param = param;
this.num = num;
}
};
window.a=a;
window.b=b;
})(window);
function test(){
var k = b();
k.open();
k.close();
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE="button" VALUE="test" ONCLICK="test();">
</BODY>
<script language="javascript" type="text/javascript">
a();
</script>
</HTML>
再一个一般例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language="javascript" type="text/javascript">
function outer(){
alert("outer");
var i = 0;
var inner = function(){
i++;
alert(i);
};
return inner;
}
var t = outer();
t();
t();
t();
t();
</script>
</HEAD>
<BODY>
<INPUT TYPE="button" VALUE="调用" ONCLICK="t();">
</BODY>
</HTML>
最后一个类似第一个例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language="javascript" type="text/javascript">
(function (window){
alert("outer");
var i = 0;
var inner = function(){
i++;
alert(i);
};
window.inner = inner;
})(window);
inner();
inner();
inner();
</script>
</HEAD>
<BODY>
<INPUT TYPE="button" VALUE="调用" ONCLICK="inner();">
</BODY>
</HTML>
分享到:
相关推荐
JavaScript 闭包研究及典型应用 JavaScript 闭包是一种强大的技术,能够在各种场景中发挥重要作用。本文将介绍 JavaScript 闭包的定义、使用场景和典型应用。 闭包函数的定义和使用场景 在 JavaScript 语言中,...
闭包是JavaScript编程中一个核心且关键的概念,尤其对于初学者而言,理解起来可能有些挑战。闭包本质上是一种特殊的作用域,它可以捕获并存储其外部函数作用域内的变量,即使外部函数已经执行完毕。简单来说,闭包...
4. **对象与原型**:JavaScript使用原型链实现继承,每个对象都有一个隐含的[[Prototype]]属性,通常通过`__proto__`访问。ES6引入了类的概念,但其本质仍是基于原型的。 5. **数组**:JavaScript中的Array对象提供...
闭包是JavaScript中的一个高级概念,允许函数访问并操作外部作用域的变量,即使在函数执行后仍然保留状态。 9. **原型与继承**: JavaScript的原型链提供了面向对象编程的实现,`__proto__`和`prototype`属性用于...
随着时间的推移,JavaScript已经发展成为一个功能强大的多平台编程语言,不仅限于浏览器,还被用于服务器端(Node.js)、移动应用、游戏开发等多个领域。 "javascript源代码大全"很可能是一份综合性的资源集合,...
理解和运用这些代码可以反映出一个开发者对JavaScript的深入理解和实际操作能力。 标签“javascript 代码 经典”进一步确认了我们关注的焦点在于JavaScript的编程实践,尤其是那些在实践中被广泛认可和使用的代码...
总之,《JavaScript征途》的源代码提供了一个实践和学习JavaScript的绝佳平台,无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。通过深入研究每个代码示例,你可以巩固理论知识,提高解决问题的能力,最终...
《Head First JavaScript源代码》是一本深入浅出的JavaScript学习资料,它以独特且易于理解的方式,引导读者掌握JavaScript的核心概念和技术。JavaScript是一种广泛应用于网页和网络应用的脚本语言,它赋予网页动态...
学习如何使用浏览器的开发者工具进行代码调试是每个JavaScript开发者必备的技能。断点、步进执行、查看变量值等工具可以帮助定位和修复错误。 通过深入学习并实践这些JavaScript知识点,初学者可以逐步成长为熟练...
"3517.zip"则可能是一个包含多个JavaScript项目的压缩包。解压后,你会看到各种实际的JavaScript代码文件,这些文件可能是独立的脚本、HTML页面或者整个Web应用程序。通过这些项目,你可以学习到如何将JavaScript...
我研究JavaScript闭包(closure)已经有一段时间了。我之前只是学会了如何使用它们,而没有透彻地了解它们具体是如何运作的。那么,究竟什么是闭包?Wikipedia给出的解释并没有太大的帮助。闭包是什么时候被创建的,...
JavaScript,作为全球最广泛使用的编程语言之一,是创建交互式网页和动态应用的关键技术。《深入浅出JavaScript源代码》是一本旨在帮助...对于想要在Web开发领域深入发展的程序员来说,这是一个不可多得的学习资源。
JavaScript,作为全球最广泛使用的编程语言之一,是创建交互式网页和网络应用的关键工具。这本书“精通JavaScript”深入探讨...在阅读和研究这些代码时,记得不断实践、调试和反思,这样才能真正掌握并精通JavaScript。
"100个Javascript特效页面以及源代码"集合涵盖了多种JavaScript技术的应用实例,是学习和研究JavaScript特效的理想资源。下面将详细介绍其中可能包含的一些关键知识点。 1. **DOM操作**:JavaScript通过Document ...
闭包是编程语言中的一个重要概念,特别是在JavaScript等函数式编程语言中。对于初学者来说,它可能显得有些抽象,但理解闭包对于提升编程技能至关重要。闭包是一种特殊的作用域,它允许函数访问并操作其外部作用域的...
《JavaScript 王者归来》是一本专注于深入探讨JavaScript编程技术的书籍,其源代码提供了丰富的实例和练习,旨在帮助读者提升对JavaScript的理解并掌握实际应用。这份源代码包含了一系列与书中内容紧密相关的脚本,...
这个名为“272个超酷经典JavaScript代码”的资源集合,显然是一个宝贵的参考资料,包含了多种实用的JavaScript编程技巧和示例。 JavaScript的核心特性包括它的弱类型系统、基于原型的对象、函数作为一等公民以及...
6. **闭包**:闭包是JavaScript中的一个重要概念,它允许函数访问和修改外部作用域的变量,即使在函数执行后仍能保持其状态。 7. **异步编程**:JavaScript是非阻塞的,常用异步编程模式有回调函数、Promise、async...
在JavaScript中,每当函数被创建时,都会形成一个闭包,可以保存函数的局部变量。因此,通过闭包,我们可以在不污染全局变量的情况下存储和管理数据。 在ZTree的上下文中,闭包可以用于以下目的: 1. 数据缓存:当...