我正在学习JS,并遇到了Javascript的概念。我还了解了两种创建函数的方法

//anonymous
    var fun1=function()
    {
    }

//named
    function fun2()
    {
    }


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

现在我的问题是,为什么fun1()的原型指向对象,而fun2的原型指向自身?我做了很多尝试来理解这一点,但是并没有正确地理解它。

 

另外,在什么情况下我们应该使用哪种类型的功能?

最佳答案

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


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


  fun2的原型是否指向自身?


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

10-06 15:27