推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
xxxpara

不使用全局变量如何定义一个 count()每次调用输出第几次调用?

  •  
  •   xxxpara · Aug 17, 2015 · 3971 views
    This topic created in 4105 days ago, the information mentioned may be changed or developed.

    一道面试题,这个要怎么做?

    10 replies  •  2015-08-18 15:08:07 +08:00
    ChefIsAwesome
    ChefIsAwesome
    Aug 17, 2015 via Android
    1
    闭包。写个会返回另外一个函数的函数就完事了
    aivier
    aivier
    Aug 17, 2015
    2
    如果没有 Cookie 和 LocalStorage ,也没有 HTML ,还不能和服务器通讯

    ....我想不出来
    est
    est
    Aug 17, 2015
    3
    函数也算全局变量?
    magicdawn
    magicdawn
    Aug 17, 2015
    4
    function count (){
    console.log (++count.count );
    }

    count.count = 0;

    函数也是可以带属性的,闭包就不说了
    Gonster
    Gonster
    Aug 17, 2015 via iPhone
    5
    var count = (function (){
    var i = 0;
    return function (){console.log (++i )}
    })();
    yangg
    yangg
    Aug 17, 2015
    6
    console.count ();
    ChefIsAwesome
    ChefIsAwesome
    Aug 17, 2015 via Android
    7
    稍微扩展一下。 jQuery 的$是什么,$.ajax 是什么,$.fn 又是什么。
    js 基本原理就这些东西了
    zhuangzhuang1988
    zhuangzhuang1988
    Aug 18, 2015
    8
    简单,定义类啊
    an168bang521
    an168bang521
    Aug 18, 2015
    9
    哥们,这题应该是考查对闭包内的变量控制的;
    可以下面这么写的,
    <script>
    function test (){
    var i=1;
    return function (){
    console.log ("这是您第 "+(i++)+" 次调用 count ()")
    };
    }
    count=test ();
    count ();
    count ();
    count ();
    count ();
    count ();
    count ();
    </script>
    这个在写 JS 时候很常用的;
    还有 4 楼说的添加自定义属性也经常用的,尤其的做定时器 /动画的时候;
    an168bang521
    an168bang521
    Aug 18, 2015
    10
    闭包和给函数添加自定义属性都可以;
    但是给函数添加自定义属性,在性能上会更好;
    因为这里用闭包实现的话。产生的作用域不销毁;
    性能不如下面这种添加自定义属性的好
    function count2 (){
    console.log ("这是您第 "+(++count2.count )+" 次调用 count2 ()");
    }
    count2.count = 0;
    count2 ();
    count2 ();
    count2 ();
    count2 ();
    count2 ();
    count2 ();
    这种实现方法比闭包,在性能上好些;
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1065 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 23:02 · PVG 07:02 · LAX 15:02 · JFK 18:02
    ♥ Do have faith in what you're doing.