不同的函数声明[重复]

Posted

技术标签:

【中文标题】不同的函数声明[重复]【英文标题】:Different function declarations [duplicate] 【发布时间】:2013-03-05 22:32:09 【问题描述】:

有人告诉我,在 javascript 中声明函数的方式不止一种。 例如。

// One way
function sqrt(x)
   return x * x;


// Second way
var sqrtAlt = function (x)
   return x * x;

这两个函数声明有什么区别? 输出相同但必须有理由有两种方式? 我也很好奇您将如何使用它们。 最后,还有其他方法吗?

谢谢。

【问题讨论】:

我觉得第二种方式应该是var sqrtAlt = function(x) ... @FabienQuatravaux 这是一个错字。固定的。谢谢。 【参考方案1】:

当你定义时

function sqrt(x)
   return x * x;

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

声明为的函数

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

匿名提出。

也可以看看这个Thread

【讨论】:

【参考方案2】:

它们基本上是相同的,但在第二个示例中,您另外将函数分配给了一个变量。当覆盖某个对象的现有函数时,这种创建函数的方式非常有用,比如说:

window.alert = function(text)

    // Do something ...
;

【讨论】:

有一个非常重要的区别:在第一个示例中,函数在执行上下文开始时可用,在第二个示例中,直到赋值语句执行完毕。

以上是关于不同的函数声明[重复]的主要内容,如果未能解决你的问题,请参考以下文章

js从一个函数重新分配一个值给多个已经声明的变量[重复]

函数是什么?

第九章

如何声明一个全局结构数组并在不同的函数中使用它?

Javascript中的函数声明[重复]

如何覆盖Prototype.js类中声明的javascript函数