将函数声明为变量有什么区别?

Abu*_*zzy -2 javascript

这会产生相同的结果吗?如果函数foo不存在怎么办?

var foo = foo || function(){
  console.log("I'm Batman");
}
Run Code Online (Sandbox Code Playgroud)

VS

var foo = function() {
  console.log("I'm Batman")
}
Run Code Online (Sandbox Code Playgroud)

Lig*_*ica 5

这是一种声明foo 是否且仅在某个其他范围内尚未声明的方式.如果有,则新的,更本地的foo应与更广泛的相同.

它的工作原理的原因是什么||呢因为fooundefined如果它不是,嗯,定义.

但是,整个过程非常罕见,而不是声明函数的常用方法之一.