var foo = function()和function foo()之间有什么区别

时间:2017-03-14 13:34:36

标签: javascript function

我有一个JavaScript类测试,它有一个私有函数 foo ,如下所示:

function Test(){}
(function()
{
    var foo = function(){
        // do stuff
        console.log('private work');
    }

    this.publicStuff = function(){
        foo();
    }

}).apply(Test);

和一个看起来像这样的

function Test(){}
(function()
{
    function foo(){
        // do stuff
        console.log('private work');
    }

    this.publicStuff = function(){
        foo();
    }

}).apply(Test);

他们都工作正常并做同样的事情,甚至可以像这样共存:

function Test(){}
(function()
{
    var foo = function(){
        // do stuff
        console.log('private work VAR');
    }

    function foo(){
        // do stuff
        console.log('private work FUNC');
    }

    this.publicStuff = function(){
        foo();
    }

}).apply(Test);

但是当它们在一起时, var foo = function()会被执行而另一个则不会被执行。

定义这些私有函数的两种方法之间的区别是什么,最佳实践是什么以及每种方法的优点/缺点是什么

0 个答案:

没有答案