`
johnson_gong
  • 浏览: 12427 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

js, javascript, 闭包, 立即执行函数

 
阅读更多

目的:学习 闭包,立即执行函数

概要:类型二,因使用立即函数,new新对象时,变量[counter_gad]未初始化。此与类型一不同点!!

 

类型一:

        var closureMode = function () {
        var countNo = 0;
        return function (){
            return (countNo += 1);
        };
        };
        
        var closureOne = new closureMode();
        console.log("1.closureOne.countNo:" + closureOne.countNo); // undefined
        console.log("2.closureMode.countNo:" + closureMode.countNo); // undefined
        console.log("3.closureOne:" + closureOne()); // 1
        console.log("4.closureOne:" + closureOne()); // 2
        
        var closureTwo = new closureMode();
        console.log("1.closureTwo:" + closureTwo()); // 1
        console.log("2.closureTwo:" + closureTwo()); // 2
        

 

类型二:

        var Gadget = (function () {
            var counter_gad = 0;
            
            NewGadget = function () {
                // counter_gad += 1;
            };
            
            NewGadget.prototype.getCounter = function () {
                return counter_gad += 1;;
            };
            
            return NewGadget;
        }()); // 立即执行函数。
        
        var g1 = new Gadget();
        utilTemp.log("g1.getCounter():" + g1.getCounter()); // 1
        utilTemp.log("g1.getCounter():" + g1.getCounter()); // 2
        
        var g2 = new Gadget();
        utilTemp.log("g2.getCounter():" + g2.getCounter()); // 3

 

 

 

分享到:
评论

相关推荐

    JavaScript闭包和立即执行函数的个人笔记

    闭包和立即执行函数一、闭包二、闭包的作用三、闭包形式四、立即执行函数五、使用环境六、小练习 一、闭包 当a函数已经执行完了,b函数才开始。 原创文章 10获赞 3访问量 453 关注 私信 展开阅读全文 作者:...

    JS匿名函数、闭包

    创建并立即调用一个函数,这样既可以执行其中的代码,又不会在内存中留下对该函数的引用; 结果就是函数内部的所有变量都会被立即销毁--除非将某些变量赋值给了包含作用域(即外部作用域)中的变量。 闭包还可以...

    理解_JavaScript_闭包

    本文结合 ECMA 262 规范详解了闭包的内部工作机制,让 JavaScript 编程人员对闭包的理解从“嵌套的函数”深入到“标识符解析、执行环境和作用域链”等等 JavaScript 对象背后的运行机制当中,真正领会到闭包的实质。

    JS中的闭包理解。。。。。。。。

    js闭包 • 每个函数都有一个包含词法环境的执行上下文,它的词法环境确定了函数内的变量赋值以及对外部环境的引用。看上去函数“记住”了外部环境,但其实上是这个函数有个指向外部环境的引用。这就是“闭包”的...

    JAVASCRIPT闭包详解

    闭包是 ECMAScript (JavaScript)最强大的特性之一,但用好闭包的前提是必须 理解闭包。闭包的创建相对容易,人们甚至会在不经意间创建闭包,但这些无意创建的闭包却存在潜在的危害 ,尤其是在比较常见的浏览器环境...

    javascript中运用闭包和自执行函数解决大量的全局变量问题

    所以,有时候,对于一些简单的全局变量,我们可以通过另一种方式来处理——用自执行函数+闭包的方法来解: 比如:我们要在网页加载时给出一个提示,在网页关闭时给出另一个提示 下面的代码,实现了以上功能 代码如下...

    深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解

    本篇文章对Javascript中函数、递归与闭包(执行环境、变量对象与作用域链)的使用进行了详细的分析介绍。需要的朋友参考下

    JavaScript中的闭包

    简单的说,Javascript允许使用内部函数—即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部...

    JavaScript闭包和回调详解

     闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 闭包有三个特性: 1.函数嵌套函数; 2.函数内部可以引用外部的参数和变量; 3.参数和变量不会被垃圾回收机制回收。  ...

    javascript笔记之匿名函数和闭包

    本文介绍了js匿名函数和闭包的相关内容,供大家参考,具体内容如下 匿名函数 [removed] //function(){}//会报错 var fun = function(){};//将匿名函数赋值给变量 (function(){})();//匿名函数自执行 function...

    理解 JavaScript 闭包

    本文结合 ECMA 262 规范详解了闭包的内部工作机制,让 JavaScript 编程人员对闭包的理解从“嵌套的函数”深入到“标识符解析、执行环境和作用域链”等等 JavaScript 对象背后的运行机制当中,真正领会到闭包的实质。

    JavaScript使用闭包模仿块级作用域操作示例

    在阅读这篇文章之前,建议先阅读JavaScript的作用域链以及JavaScript闭包。 正如闭包的定义一样:“闭包指的是有权访问另一个函数作用域中的变量的函数”, 闭包最大的意义就在于闭包可以对另一个函数作用域的变量...

    深入理解JavaScript系列

    深入理解JavaScript系列(4):立即调用的函数表达式 深入理解JavaScript系列(5):强大的原型和原型链 深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP 深入理解JavaScript系列(7):S.O.L.I.D...

    javascript 常见的闭包问题的解决办法

    –这就是闭包的问题 原来 在js中,函数中在定义函数,就出现闭包了。此时外层函数中变量是可以在里层函数里利用的,即使外层函数结束。但是当外层中出现循环的时候,如果在里层函数中利用这个循环变量的话,会直接...

    谈谈JavaScript中的函数与闭包

    Javascript采用词法作用域,函数的执行依赖于变量作用域,这个作用域是在定义函数时确定的。因此Javascript中函数对象不仅保存代码逻辑,还必须引用当前的作用域链。Javascript中函数内部的局部变量可以被修改,而且...

    详解JavaScript的闭包、IIFE、apply、函数与对象

    目录 一、闭包(Closure) 1.1、闭包相关的问题 ...3.5、立即执行函数表达式 (IIFE) 3.5.1、匿名函数与匿名对象 3.5.2、函数与函数表达式 3.5.3、立即执行函数表达式与匿名对象 3.5.4、各种IIFE的写法 3.5.5、参数

    javascript中的return和闭包函数浅析

    今天一个刚学js的朋友给了我一段代码问为什么方法不执行,代码如下: 代码如下:function makefunc(x) { return function (){ return x; }}alert(makefunc(0));其实不是不执行,只是朋友的意思这里alert...

    利用setTimeout解决延时执行某操作

    setTimeout,javascript 延时执行函数,闭包处理 利用javascript闭包处理延时操作

Global site tag (gtag.js) - Google Analytics