可能重复:
Javascript: var functionName = function() {} vs function functionName() {}
我很好奇在js
中创建一个函数时哪个是最好的实践function x() {
...
}
OR
var x = function() {
...
}
是否存在差异或是否完全相同。
答案 0 :(得分:2)
x(); // I work
function x() {
...
}
y(); // I fail
var y = function() {
...
}
第一个是函数声明。您可以在声明之前使用函数。
第二个是为变量赋值。这意味着您可以分配任何内容。
您可以将其分配到foo[0]
或foo.bar.baz
或foo.get("baz")[0]
答案 1 :(得分:1)
我更喜欢第一种形式,因为它是在定义变量之前定义的。
因此,您可以在稍后的范围内调用x
,因为解释器已经定义了该函数,即使它稍后可能在您的代码中声明。
使用某些代码会更简单:
x(); //logs "hi"
//...
function x() {
console.log("hi");
}
VS
x(); //fails
var x = function() {
console.log("hi");
};
答案 2 :(得分:1)
它们并不完全相同,人们已经提到了前瞻性的差异,这里有一个鲜为人知的细微之处 - 函数名称属性:
function x(){}
x.name; // "x"
var x = function(){};
x.name; // ""
答案 3 :(得分:0)
在第二种情况下,您可以将函数作为参数传递并将它们存储在数组中
答案 4 :(得分:0)
答案 5 :(得分:0)
第一个是函数声明,后者是函数表达式。阅读更多here,同时我试图找到一篇非常深入的文章,我曾读过它的差异和含义。
修改:啊,here we go。拿一杯茶,安顿下来进行深入讨论。