// 闭包问题
//由于 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 ();
分享到:
相关推荐
主要介绍了JS学习笔记之闭包,结合具体案例形式分析了javascript实现与使用闭包的相关操作技巧,需要的朋友可以参考下
给大家分享了一篇关于JavaScript函数、闭包、原型、面向对象的知识点学习笔记内容,有兴趣的朋友参考下。
自己学习笔记。视频:腾讯课堂:渡一教育 内容大纲: 预编译: 函数 闭包问题 对象 原型、原型链、call、apply 继承模式 对象克隆 数组 类数组 数组去重 自定义type方法(类似于typeof) try-catch es5.0严格模式 ...
Javascript 中一个最重要的特性就是闭包的使用。因为闭包的使用,当前作用域总可以访问外部的作用域。因为 Javascript 没有块级作用域,只有函数作用域,所以闭包的使用与函数是紧密相关的。 模拟私有变量 代码如下...
本文实例讲述了JavaScript闭包原理与用法。分享给大家供大家参考,具体如下: 闭包(Closure) 闭包是一个函数和词法环境的组合,函数声明在这个词法环境中。 词法作用域: 看下面的一个例子: function init() { ...
一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 代码如下: var n=999;...
本文主要给大家介绍了关于JavaScript惰性函数的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 需求 我们现在需要写一个 foo 函数,这个函数返回首次调用时的 Date 对象,注意是首次...
面向对象的 javascript 学习 大家好,根据我的学习经验总结了下面一些javascript面向对象方法的知识,希望对一些接触这方面不多的人有所帮助,有不正确的地方请指正。 学习内容;引用,函数重载和类型检查,作用...
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的...
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处...
本文实例讲述了JS页面获取 session 值,作用域和闭包。分享给大家供大家参考,具体如下: Javascript获取session的值: var name= "${sessioScope.变量名}"; 注意这里面需要使用 “” 把 El 表达式给括起来,否则...
JavaScript这门语言中,最令人迷惑的地方有三个,闭包、this、原型。针对大多数人,可以利用词法作用域等避开this的坑,但是我们不能一直生活在舒适区,要敢于打破砂锅问到底,对我们来说也是一种提升。 一、一般对...
Function类及闭包,学习js的朋友可以参考下
谷粒学院学习笔记,内容包括 原型与原型链、执行上下文、执行上下文栈、变量提升、函数提升、作用域、作用域链、闭包、对象的多种创建模式、对象的继承模式、JavaScript事件循环机制等。
3、知识点的归纳总结也比较突出重点,方便二次学习以及做笔记 字体清晰不模糊,看起来舒服。 算法导论 第三版 中文版 清晰 PDF,全书共8部分35章节,内容涵盖基础知识、排序和顺序统计量、数据结构、高级设计和分析...