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 @   xgqfrms  阅读(138)  评论(5编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2018-11-27 js RegExp bug All In One
2015-11-27 通过博客园对.NET全栈开发工程师的招聘要求----------了解要成长为一名优秀的.NET全栈开发工程师,必须掌握的IT技能有什么?
2015-11-27 最完整的 HTML 4 & HTML 5 实体字符参考手册 All In One
2015-11-27 最新 Markdown for GitHub教程
2015-11-27 对冲基金
点击右上角即可分享
微信分享提示