javascript中命名函数和匿名函数的原型结构之间的差异?

javascript中命名函数和匿名函数的原型结构之间的差异?,javascript,Javascript,我正在学习JS,并且偶然发现了Javascript的概念。我还学习了创建函数的两种不同方法 //anonymous var fun1=function() { } //named function fun2() { } 我在网上搜索,发现了一些重要的区别,如: 1.我们可以在命名函数声明之前调用它,而在匿名情况下则不可能 2.fun1()将在运行时定义,而另一个的分配将在解析时定义 现在我的问题是为什么fun1()的原型指向对象,而fun2的

我正在学习JS,并且偶然发现了Javascript的概念。我还学习了创建函数的两种不同方法

//anonymous
    var fun1=function()
    {
    }

//named 
    function fun2()
    {
    }
我在网上搜索,发现了一些重要的区别,如:
1.我们可以在命名函数声明之前调用它,而在匿名情况下则不可能
2.fun1()将在运行时定义,而另一个的分配将在解析时定义

现在我的问题是为什么fun1()的原型指向对象,而fun2的原型指向自身?我试图理解这一点,但没有得到正确的理解

在什么情况下我们应该使用什么类型的函数

现在我的问题是为什么fun1()的原型指向对象

不是。它指向一个物体。展开它,您会发现它是一个普通的原型对象,而不是
对象
构造函数

fun2的原型指向它自己


不是。它也指向一个普通的原型对象。唯一的区别是
fun2
是一个命名函数,因此您的控制台将所有具有
.constructor==fun2
的内容显示为“一个
fun2
对象”。

可能重复@Bergi Hi我已经检查了该链接。我想知道原型机的不同之处,那太快了。也许你也应该在问题标题中提到“原型”,而且你已经“在控制台中看到了”;)谢谢我查过了,跟你说的一样。您还可以告诉我在哪些情况下我们应该使用这些选项吗命名函数更容易调试。在某些情况下,需要使用函数表达式,如果需要IE8兼容性,则不应命名这些表达式。关于这个问题,链接的“副本”更为详细。