`

JavaScript 学习笔记七 闭包

 
阅读更多

// 闭包问题
//由于 JavaScript 中,函数是对象,
//对象是属性的集合,而属性的值又可以是对象,则在函数内定义函数成为理所当然,如果在
//函数 func 内部声明函数 inner,然后在函数外部调用 inner,这个过程即产生了一个闭包。
var outter = [];
function clouseTest (){
    var array = ["one","two","three","four"];
    for(var i=0;i<array.length;i++){
        var x = {};
        x.no = i;
        x.text = array[i];
        x.invoke = function(){
            alert(i);
        };
        outter.push(x);
    }
}

//调用这个函数
clouseTest();
outter[0].invoke();//4 这样的语句 x.invoke = function(){print(i);}并没有被执行,
outter[1].invoke();//4

//闭包允许你引用存在于外部函数中的变量。然而,它并不是使
//用该变量创建时的值,相反,它使用外部函数中该变量最后的值。
// 这类问题改进如下:
function clouseTest2 (){
    var array = ["one","two","three","four"];
    for(var i=0;i<array.length;i++){
        var x = {};
        x.no = i;
        x.text = array[i];
        x.invoke = function(no){
            alert(no);//在调用的当时就要用上,解决方法是立即执行该函数
        }(i);
        outter.push(x);
    }
}
clouseTest2 ();
 
分享到:
评论

相关推荐

    javascript学习笔记整理知识点整理

    这份“javascript学习笔记整理知识点整理”是针对初学者的一份宝贵资料,涵盖了JavaScript的基础知识,旨在帮助新手快速入门并掌握这门语言的核心概念。 一、变量与数据类型 在JavaScript中,变量用于存储数据。...

    JavaScript学习笔记

    本学习笔记旨在帮助初学者快速掌握JavaScript的核心概念和技术,实现从入门到精通的过渡。 1. **基础语法** - 变量声明:JavaScript支持var、let和const关键字声明变量,理解它们的作用域和提升特性至关重要。 - ...

    js 笔记 javascript 学习笔记

    本学习笔记将深入探讨JavaScript的核心概念,包括变量、数据类型、操作符、控制流程、函数、对象、数组、原型链、闭包等,并结合实际示例,如my.js、order.js、login.js等文件,来讲解其在实际项目中的应用。...

    javascript入门学习笔记

    这份"javascript入门学习笔记"旨在为初学者提供一个全面且深入的JavaScript学习路径。 一、基础语法 JavaScript的基础包括变量、数据类型、操作符、流程控制等。变量用于存储数据,数据类型分为基本类型(如字符串...

    Javascript学习笔记(传智播客视频学习笔记+代码)

    "Javascript学习笔记(传智播客视频学习笔记+代码)"是一份全面介绍JavaScript基础知识的学习资源,适用于初学者。这份笔记结合了传智播客的web前端培训视频内容,提供了丰富的理论讲解和实践代码,帮助读者从零开始...

    javascript学习笔记(十三) js闭包介绍(转)

    闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现

    javaScript学习笔记.rar

    这个“javaScript学习笔记.rar”压缩包显然包含了作者在学习JavaScript过程中的心得和记录,对于初学者或者想要深入理解JavaScript的人来说,是一份宝贵的资源。 JavaScript与Java虽然名字相似,但两者实际上是不同...

    JavaScript 学习笔记集和代码库

    压缩包中的“JavaScript学习笔记集”可能包含了语言的基本概念、语法特性、面向对象编程、闭包、原型链、作用域、异步编程等内容的详细解释。而“代码库”可能包含了大量的示例代码,涵盖各种常见任务,如表单验证、...

    JavaScript学习笔记讲解

    这只是JavaScript学习笔记的一小部分,JavaScript还有更多高级特性和概念,如对象、数组、函数、类、模块、闭包等,以及DOM操作、事件处理、Ajax异步请求等内容,需要进一步深入学习和实践才能掌握。

    JavaScript学习笔记-适合初学者

    本学习笔记专为初学者设计,旨在帮助新接触JavaScript的人快速掌握这门语言的核心概念和实用技巧。 首先,"JavaScript特效.chm"可能是一份关于JavaScript实现的各种网页特效的教程。这些特效可能包括图片轮播、下拉...

    Javascript学习笔记___自学实用

    JavaScript学习笔记——深入理解基础与函数 在JavaScript中,学习基础知识是至关重要的,因为它是所有进一步编程技巧的基础。首先,我们需要了解JavaScript中的数据类型。在JavaScript中,有五种简单的数据类型:...

    JavaScript 入门 新手学习笔记

    这篇"JavaScript入门新手学习笔记"提供了全面的学习资源,适合初学者系统性地掌握这一技术。 笔记可能包含了以下关键知识点: 1. **基础语法**:JS的基础包括变量(var、let、const)、数据类型(如字符串、数字、...

    JavaScript基础学习笔记

    JavaScript 基础学习笔记 本资源摘要信息基于黑马视频记录的学习笔记,涵盖了 JavaScript 基础知识点,包括 HTML、CSS、JavaScript、DOM、事件处理等内容。 HTML 和 CSS 基础 * HTML 结构:head、body、title、...

    JavaScript学习笔记 概括了所有的javaScript语法 用法

    本学习笔记全面涵盖了JavaScript的语法和用法,旨在帮助初学者快速掌握并深入理解这门语言。 一、基础语法 JavaScript的基础包括变量、数据类型、操作符和流程控制。变量在JavaScript中使用`let`、`const`和`var`...

    JavaScript 学习笔记

    这份“JavaScript学习笔记”涵盖了JavaScript的基础、进阶以及与HTML、CSS和DOM的协同工作等内容,适合初学者进行自我学习。 **JavaScript基础** JavaScript的基础包括变量、数据类型、操作符、流程控制(条件语句...

    JavaScript学习笔记_js常用函数封装_js包.zip

    本压缩包“JavaScript学习笔记_js常用函数封装_js包.zip”包含了对JavaScript基础及进阶技巧的学习资料,特别关注了函数封装和模块化开发实践。 首先,`tool.js`可能是一个实用工具函数集合,封装了一些常见的...

    JavaScript学习笔记,markdown格式以及PDF格式

    《JavaScript学习笔记》包含了JavaScript的基础语法部分,以markdown和PDF两种格式提供,方便不同需求的学习者查阅和打印。Markdown格式易于阅读和编辑,而PDF格式则更适合离线阅读和保存。 在"JavaScript基础语法....

    我的JavaScript学习笔记

    这篇学习笔记将带你深入了解JavaScript的基础和一些进阶应用。 首先,我们从"Js基本语法"开始。JavaScript是一种弱类型、解释型的脚本语言,它支持变量声明(var、let、const)、数据类型(包括基本类型:字符串、...

Global site tag (gtag.js) - Google Analytics