【发布时间】:2012-12-31 17:31:37
【问题描述】:
可能重复:
JavaScript: var functionName = function() {} vs function functionName() {}
What is the difference between a function expression vs declaration in Javascript?
我知道函数声明和表达式之间的区别,但是遇到过这段涉及函数名的代码,想了解运行它时会发生什么:
var abc = function def() {
console.log("Wait! What??");
}
我知道这不是 JavaScript 的一种方式,但只是想知道一些事情:
-
abc会发生什么?为什么它有效?abc可以调用,def不能调用,为什么? - 是函数声明还是表达式?
-
def是undefined- 为什么?如果它应该是,有没有 内存泄漏? - 为什么
abc.prototype是函数def?
谢谢
【问题讨论】:
-
这是一个命名函数表达式。
def可以在 inside 函数时使用def引用自身。虽然要注意浏览器怪癖(IE) -
您可能还没有阅读过这些问题及其答案:stackoverflow.com/questions/1140089/… 和 stackoverflow.com/questions/336859/…
-
kangax.github.com/nfe 应该为您提供所有答案
-
我不相信这个问题是一个骗局,因为它专门询问变量名称和函数名称不同的情况(即使它是由其中一个答案之一回答的)其他问题)。
-
它不是重复的。已添加到“可能重复”的问题是针对声明和表达的差异。这不是这里所要求的。请投票重新开放
标签: javascript oop