xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

js in depth: closure function & curly function

js in depth: closure function & curly function

闭包, 科里化

new

js 构造函数 实例化, 不需要 new


var num = new Array();
for(var i=0; i<4; i++){
    num[i] = f1(i);
}
function f1(n){
     var i=0;
     function f2(){
         i++;
         console.log(i, n);
     }
     return f2;
}
num[2]();
num[1]();
num[0]();
num[3]();

// 1 2
// 1 1
// 1 0
// 1 3

https://www.cnblogs.com/hejun26/p/10910590.html

new

js 构造函数 实例化, 不需要 new === 调用常规方法

js 构造函数 实例化, 需要 new === 类作用,实例化新的实例


var num = new Array();
for(var i=0; i<4; i++){
    num[i] = f1(i);
    console.log(num[i] instanceof f1);
}
function f1(n){
     var i=0;
     function f2(){
         i++;
         console.log(i, n);
     }
     return f2;
}
num[2]();
num[1]();
num[0]();
num[3]();


如果不是创建类多个实例的话,为什么每个 f1 分别维护一套 i 的变量呀?不是因该共享的吗?

refs



©xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


posted @ 2019-11-27 21:11  xgqfrms  阅读(138)  评论(5编辑  收藏  举报