我刚刚购买了最新版本的“JavaScript:The Definitive Guide”,并且已经有了一个问题。 :d
以下几行在语义上是相同的:
var square = function(n){
return n * n;
};
和
function square(n){
return n * n;
}
如果是,使用它们中的任何一个的优点/缺点是什么?
感谢您的帮助!
答案 0 :(得分:3)
是的,他们做的完全相同。
第一种方法的主要优点是它为您提供了对该函数的引用,以便您可以将其传递给另一个函数或在需要时将其附加到对象。
答案 1 :(得分:3)
检查出来:
a(); // prints 'A'
function a(){
console.log('A');
};
和此:
b(); // throws error. b is not a function
var b = function() {
console.log('B');
};
您是否注意到了差异?
答案 2 :(得分:0)
区别在于,在第一个解决方案中,您可以这样做:
var square = function(n){
return n * n;
};
// some code
square = function(n) { return n*n*n; }
您对某个功能引用。在另一个解决方案中,该函数是静态声明的。
免责声明:需要JS大师告诉我,如果我错了=)。