javascript面向对象编程
2016-11-09 18:23
471 查看
<span style="color: rgb(90, 90, 90); font-family: 'microsoft yahei'; font-size: 18px; line-height: 29.7px; white-space: pre-wrap;">这里创建的闭包都指向一个共同的局部变量i,闭包不会记录值它们只拥有i的引用。</span>
function f(){ var a=[]; var i; for(i=0;i<3;i++) { a[i]=function(){ return i } } return a; } var a=f(); a[0](); /* 3 */ a[1](); /* 3 */
使用自调函数
function f(){ var a=[]; var i; for(i=0;i<3;i++){ a[i]=(function(x){ return function (){ return x; } })(i); } return a; } var a=f(); a[0](); a[1](); /* 0 */ /* 1 */定义一个内部函数实现相同功能
function f(){
function makeClosure(x){
return function (){
return x;
}
}
var a=[];
var i;
for(i=0;i<3;i++)
{
a[i]=makeClosure(i);
}
return a;
}
var a=f();
a[0]();
a[1]();
/*
0
*/
/*
1
*/
相关文章推荐
- Javascript面向对象编程(一):封装
- [转载]JavaScript 面向对象编程, 第一部分: 继承
- 深入解读JavaScript面向对象编程实践
- Javascript 面向对象编程(一) 封装
- Javascript面向对象编程(三):非构造函数的继承
- Javascript面向对象编程(三):非构造函数的继承
- ajax in action——javascript面向对象编程(上)
- Javascript面向对象编程(三):非构造函数的继承
- Javascript面向对象编程(二):构造函数的继承
- 深入理解JavaScript系列(18):面向对象编程之ECMAScript实现(推荐)
- JavaScript面向对象编程
- Javascript面向对象编程(二):构造函数的继承
- Javascript 面向对象编程
- (转)Javascript面向对象编程(二):构造函数的继承
- 浅谈javascript 面向对象编程
- JavaScript [ 转 ] —— 面向对象编程(二):构造函数的继承
- JavaScript与面向对象编程
- Javascript 面向对象编程(一):封装
- (2)如何在Javascript中自定义类 & 面向对象编程 (封装)
- Javascript面向对象编程(二):构造函数的继承