찾다

 >  Q&A  >  본문

javascript - js方法 各种形式

突然了解到全局变量是烧性能的 然后联想到了方法,但是js基础底子差,对一些奇奇怪怪的想法不敢下确定,求大神指点了。

/*------function  one--------------*/
var a = 1;
function aF(){
    var b = a+1;
    return b;
}
function bF(){
    var c = aF();
    return c;
}
$(function(){
    bF();
});

/*------function  two--------------*/
$(function(){
    var a = 1;
    function aF(){
        var b = a+1;
        return b;
    }
    function bF(){
        var c = aF();
        return c;
    }
    bF();
});

/*------function  three-----------*/
$(function(){
    var a = 1;
    function bF(){
        var c = aF();
        function aF(){
            var b = a+1;
            return b;
        }
        return c;
    }
    bF();
    aF = null;
});

求大神指点
第三种和第二种有什么区别
关键是最想知道的是性能方面
(其实我也不知道到底想知道什么,求区别把)

PHP中文网PHP中文网2792일 전621

모든 응답(3)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-10 17:34:32

    你再把a传递进去,性能说不定更好

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 17:34:32

    首选,几个小函数影响不了多大性能。
    写代码,代码可维护行是很重要的一个方面,有时候性能往往是让路于维护的,明明有些函数可以自己写,为什么要用jq和ng...,
    而且第三个函数内部使用闭包,闭包会影响性能,消耗内存,
    你可以度娘一下 js的变量提升和js的闭包。。。。

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-10 17:34:32

    个人理解从占用内存的角度而言,第二种的性能比第三种更好一点点。因为第二种的两个函数都一直保存在内存中。而第三种里的aF在bF内部,bF执行完以后aF就会被销毁。因为bF外面没有变量引用aF。这里并不算是我们通常所说的闭包。

    회신하다
    0
  • 취소회신하다