我无法轻松找到答案,因此即使这个问题是个骗局,也不会使用这些关键字得出答案。
我想知道示例 app.js 中声明函数的不同方式之间的区别
var foo = function()
{
//..
}
function bar()
{
//..
}
var baz= function()
{
//..
}
function qux()
{
//..
}
// other??
我也不清楚我可以使用每个函数的范围。谢谢!
最佳答案
在 JavaScript 中创建函数有四种方法。
函数声明
这将在当前作用域中创建一个变量 foo
并为其分配一个命名函数。
function foo () {
}
函数声明被提升,因此在适用范围内将它们放在何处并不重要。不过,在使用它们之前定义它们被认为是良好的编码实践。
匿名函数表达式
这将创建一个没有名称的函数并在表达式中使用它。在此示例中,它被分配给变量 something
。
something = function () {
};
命名函数表达式
这与匿名函数表达式相同,只是它有一个名称,在其自身范围内创建一个具有该名称的变量,并且是 horribly broken在旧版本的 Internet Explorer 中。
something = function foo () {
};
函数构造函数
不要使用函数构造函数。它们是 eval
的另一个名字。您可以在MDN上阅读有关它们的信息。如果你有兴趣。
关于javascript 函数声明和作用域差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27924037/