在JS中创建一个函数

时间:2011-04-21 21:21:14

标签: javascript

  

可能重复:
  Javascript: var functionName = function() {} vs function functionName() {}

我很好奇在js

中创建一个函数时哪个是最好的实践
function x() {
    ...
}

OR

var x = function() {
    ...
}

是否存在差异或是否完全相同。

6 个答案:

答案 0 :(得分:2)

x(); // I work
function x() {
    ...
}
y(); // I fail
var y = function() {
    ...
}

第一个是函数声明。您可以在声明之前使用函数。

第二个是为变量赋值。这意味着您可以分配任何内容。

您可以将其分配到foo[0]foo.bar.bazfoo.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。拿一杯茶,安顿下来进行深入讨论。