当我应该使用var函数和函数时

时间:2014-02-16 10:46:14

标签: javascript

我知道这两者之间的区别是什么:

var myFunction = function(a) { ... }
function myFunction2(a) { ... }

我无法弄清楚何时我应该使用第一个和第二个。

我看到了var functionName = function() {} vs function functionName() {},但正如我所说,我知道这两者之间的区别是什么。

1 个答案:

答案 0 :(得分:1)

嗯,这两个选项在重复的帖子中有利有弊。如果您使用:

var functionOne = function () { … }
function functionTwo () { … }

然后functionOne在定义之前的块中不存在,并且在运行时定义。另一个选项functionTwo是在解析时定义的,可以在程序中的任何地方调用。另一个变化是函数内this的行为。

基本上,你的问题是:

  • 我想如何调整我的功能范围?
  • 如果范围无关紧要,我更喜欢运行时间还是解析时间?

为了得到这些问题的完整答案,我真的建议你阅读并重读Crockford "Javascript the good parts"的短篇小说,看起来@ wumm的suggested article也非常相关。 / p>