在第464和465页的“ Head First Javascript”一书中,有两个矛盾的陈述。

第464章


  浏览器评估函数声明时,会创建一个
  函数以及与该函数同名的变量,以及
  将函数引用存储在变量中。


第465章


  函数声明不会返回对函数的引用;
  而是使用函数名称创建一个变量并分配
  它的新功能。


那么是哪一个呢?当解释器查看函数声明时,创建一个变量-它是否为该变量分配了函数或函数引用?

语句“函数声明不返回对函数的引用”是否是错误的?

最佳答案

JavaScript并没有真正区分两者。

每当您拥有一个作为对象的值时,该值实际上就是对该对象的引用。

(请记住,函数只是JS中的一种对象)。

函数声明不能​​返回任何内容,它们不能存在于任何要返回左手的地方(如果返回,那么它们将是函数表达式而不是声明)。它们在当前作用域中创建与它们同名的变量。

07-24 18:02
查看更多