定义函数的JavaScript差异

时间:2011-05-26 13:58:12

标签: javascript function

我刚刚购买了最新版本的“JavaScript:The Definitive Guide”,并且已经有了一个问题。 :d

以下几行在语义上是相同的:

var square = function(n){
                 return n * n;
             };

function square(n){
    return n * n;
}

如果是,使用它们中的任何一个的优点/缺点是什么?

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

是的,他们做的完全相同。

第一种方法的主要优点是它为您提供了对该函数的引用,以便您可以将其传递给另一个函数或在需要时将其附加到对象。

答案 1 :(得分:3)

检查出来:

a(); // prints 'A'

function a(){

    console.log('A');

};

和此:

b(); // throws error. b is not a function

var b = function() {

    console.log('B');

};

您是否注意到了差异?

答案 2 :(得分:0)

区别在于,在第一个解决方案中,您可以这样做:

var square = function(n){
                 return n * n;
             };

// some code

square = function(n) { return n*n*n; }

您对某个功能引用。在另一个解决方案中,该函数是静态声明的。

免责声明:需要JS大师告诉我,如果我错了=)。