不同的函数声明

3
我听说在JavaScript中声明函数的方式不止一种。 例如:
// One way
function sqrt(x){
   return x * x;
}

// Second way
var sqrtAlt = function (x){
   return x * x;
}
  • 这两个函数声明有什么区别?
  • 输出结果相同,但为什么要有两种方式呢?
  • 我也很好奇如何使用它们。
  • 最后,还有其他的方法吗?

谢谢。


1
我认为第二种方式应该是 var sqrtAlt = function(x){ ... } - Fabien Quatravaux
@FabienQuatravaux 这是一个打字错误。已经修复了。谢谢。 - chatu
2个回答

0

当你在定义时

function sqrt(x){
   return x * x;
}

这是函数名称出现在Firebug调试器中。

声明为函数的功能。

var sqrtAlt = function (x){
 return x * x;
 }

显示为匿名。

还可以查看这个线程


0
它们基本上是同一件事情,但在第二个示例中,您还将该函数分配给一个变量。当覆盖某个对象的现有函数时,这种创建函数的方式非常有用,比如说:
window.alert = function(text)
{
    // Do something ...
};

有一个非常重要的区别:在第一个例子中,函数在执行上下文的开始时就可用,在第二个例子中,直到赋值语句被执行后才可用。 - a better oliver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接