This question already has answers here:
var functionName = function() {} vs function functionName() {}
(39个答案)
What is the difference between a function expression vs declaration in JavaScript? [duplicate]
(5个答案)
5年前关闭。
我无法轻松找到答案,所以即使这个问题是重复的,答案也不会使用这些关键字出现。
我想知道示例app.js中声明函数的不同方式之间的区别
我也不清楚我可以使用每个功能的范围。谢谢!
函数声明是悬挂式的,因此在适用范围内的任意位置放置都无关紧要。不过,在使用它们之前先定义它们是一种良好的编码习惯。
匿名函数表达式
这将创建一个没有名称的函数,并在表达式中使用它。在此示例中,将其分配给变量
命名函数表达式
这与匿名函数表达式相同,除了它具有名称,在其自身范围内创建该名称的变量并且在Internet Explorer的较早版本中为horribly broken。
函数构造函数
不要使用函数构造函数。它们的别名是
(39个答案)
What is the difference between a function expression vs declaration in JavaScript? [duplicate]
(5个答案)
5年前关闭。
我无法轻松找到答案,所以即使这个问题是重复的,答案也不会使用这些关键字出现。
我想知道示例app.js中声明函数的不同方式之间的区别
var foo = function()
{
//..
}
function bar()
{
//..
}
var baz= function()
{
//..
}
function qux()
{
//..
}
// other??
我也不清楚我可以使用每个功能的范围。谢谢!
最佳答案
使用JavaScript创建函数有四种方法。
功能声明
这将在当前作用域中创建一个变量foo
,并为其分配一个命名函数。
function foo () {
}
函数声明是悬挂式的,因此在适用范围内的任意位置放置都无关紧要。不过,在使用它们之前先定义它们是一种良好的编码习惯。
匿名函数表达式
这将创建一个没有名称的函数,并在表达式中使用它。在此示例中,将其分配给变量
something
。something = function () {
};
命名函数表达式
这与匿名函数表达式相同,除了它具有名称,在其自身范围内创建该名称的变量并且在Internet Explorer的较早版本中为horribly broken。
something = function foo () {
};
函数构造函数
不要使用函数构造函数。它们的别名是
eval
。如果您有兴趣,可以在MDN上阅读有关它们的信息。关于javascript - javascript函数声明和作用域差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27924037/